Ansible - utilizare playbook-uri
Postat la Sat 03 November 2018 in tutoriale
In documentatia oficiala de la ansible, playbook-urile (playbooks) e definit ca limbaj de configuare, deploy si orchestrare (administrare daca doriti).
Playbook-urile sunt fisiere in format yaml care pot fi usor de parcurs si inteles si pe care ansible executa instructiunile - comenzile - in ordinea descrisa.
Un exemplu (apache.yml):
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: ubuntu
became: yes
tasks:
- name: ensure apache is at the latest version
yum:
name: httpd
state: latest
- name: write the apache config file
template:
src: /srv/httpd.j2
dest: /etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running
service:
name: httpd
state: started
handlers:
- name: restart apache
service:
name: httpd
state: restarted
unde:
- hosts - masina sau grupul de masini unde executam comenzile,
- vars - variabile/parametrii folositi in executia comenzilor sau la generarea fisierelor de configurare din sabloane (template),
- remote_user - utlizatorul folosit la conectarea prin SSH; poate fi definit in ansible.cfg sau in inventory la nivel de masina,
- became - daca dorim executia comenzilor ca root,
- tasks - lista de comenzi ce se executa.
Lista de task-uri (comenzi) sunt executate in ordine, una cate una la toate masinile definite in paramtrul hosts, iar in cazul cand o comanda esueaza pe o masina pe aceasta nu se mai executa restul comenzilor din lista.
tasks:
- name: ensure apache is at the latest version
yum:
name: httpd
state: latest
Task-urile sunt definite prin:
- name - descriere sugestiva a comenzii ce se executa,
- modulul utilizat cu parametrii specifici conform documentatiei
Parametrii de executie pot fi definiti ca si cheie=valoare:
tasks:
- name: ensure apache is at the latest version
yum: name=httpd state=latest
Rularea playbook-urilor este simpla:
ansible-playbook apache.yml
ori daca dorim sa limitam executia lui doar la o masina din grup:
ansible-playbook apache.yml --limit server2
Articolul face parte din seria Aplicatii pentru managementul configuratiilor