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:

Geïllustreerde weergave van een mogelijk playbook

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



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow