ansible
Inleiding tot playbooks
Zoeken…
Overzicht
In Ansible is een playbook een YAML-bestand met de definitie van hoe een server eruit moet zien. In een playbook definieert u welke acties Ansible moet ondernemen om de server in de gewenste staat te krijgen. Alleen wat u definieert wordt gedaan.
Dit is een standaard Ansible-playbook dat git installeert op elke host die bij de web
hoort:
---
- name: Git installation
hosts: web
remote_user: root
tasks:
- name: Install Git
apt: name=git state=present
Playbook's structuur
Het formaat van een playbook is vrij eenvoudig, maar strikt in termen van afstand en lay-out. Een speelboek bestaat uit toneelstukken. Een toneelstuk is een combinatie van doelenhosts en de taken die we op deze hosts willen toepassen, dus een tekening van een playbook is dit:
Om dit speelboek uit te voeren, voeren we eenvoudig:
ansible-playbook -i hosts my_playbook.yml
De structuur van het spel
Hier is een eenvoudig spel:
- name: Configure webserver with git
hosts: webserver
become: true
vars:
package: git
tasks:
- name: install git
apt: name={{ package }} state=present
Zoals we eerder zeiden, moet elk spel bevatten:
Een set hosts om te configureren
Een lijst met taken die op die hosts moeten worden uitgevoerd
Zie een toneelstuk als het ding dat hosts met taken verbindt. Naast het specificeren van hosts en taken, ondersteunt spelen ook een aantal optionele instellingen. Twee veel voorkomende zijn:
-
name
: een opmerking die beschrijft waar het stuk over gaat. Ansible zal dit afdrukken wanneer het spel begint te lopen -
vars
: een lijst met variabelen en waarden
Tags
Play bevat verschillende taken, die kunnen worden getagd:
- name: Install applications
hosts: all
become: true
tasks:
- name: Install vim
apt: name=vim state=present
tags:
- vim
- name: Install screen
apt: name=screen state=present
tags:
- screen
Taak met tag 'vim' wordt uitgevoerd wanneer 'vim' is opgegeven in tags. U kunt zoveel tags opgeven als u wilt. Het is handig om tags zoals 'install' of 'config' te gebruiken. Vervolgens kunt u playbook uitvoeren met tags of skip-tags. Voor
ansible-playbook my_playbook.yml --tags "tag1,tag2"
ansible-playbook my_playbook.yml --tags "tag2"
ansible-playbook my_playbook.yml --skip-tags "tag1"
Voer standaard alle tags uit