Korak 1: Stvaranje YAML (.yml) datoteke
Korak 2: Razumijevanje priručnika: zadaci i rukovatelji
Korak 3: Izvođenje playbooks-a
Playbooks u Ansibleu ono su što Ansible čini tako praktičnim. Playbooks omogućuju izvršavanje rutinskih zadataka s nekoliko modula. Kada trebamo koristiti playbooks?
Pogledajmo zadatak rutinskog održavanja: ažuriranje vaših poslužitelja. Za to ne bismo morali koristiti playbook, s obzirom da je to samo jedna naredba: apt-get update. Mogli bismo koristiti samo jednu naredbu za ažuriranje softvera na svim našim poslužiteljima. Međutim, za implementaciju nečega kao što je web ili poslužitelj baze podataka, potrebno je više posla: ne samo jedna naredba. Playbooks su savršeni za ovaj slučaj. Omogućuju vam korištenje više modula, koji su naredbe koje se mogu izvršiti na poslužitelju. Na primjer, postoje moduli za kopiranje datoteka i izvođenje naredbi ljuske preko SSH-a.
Dakle, kako se koristimo igraonicama? Započnimo!
Korak 1: Stvaranje YAML ( .yml) datoteke
Ansible playbooks su napisani kao .ymldatoteke; Ansible ne može tumačiti druge formate. Primjer Ansible playbook-a izgleda ovako:
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=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 (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
(Preuzeto iz Ansibleove dokumentacije)
Korak 2: Razumijevanje priručnika: zadaci i rukovatelji
Kao što možete vidjeti, postoji više odjeljaka u ovoj knjizi. Kao prvo, vidjet ćete hosts:liniju. Ovo određuje na kojim će se hostovima playbook izvršiti. Također možete vidjeti da smo definirali nekoliko varijabli kojima se može pristupiti i koristiti u cijelom priručniku. Tada ćete vidjeti niz zadataka. Ovi zadaci bi se mogli nazvati nešto poput "Instaliraj Apache", na primjer. Drugi zadatak u primjeru piše u Apache konfiguraciju. Tada ćete vidjeti sljedeće:
notify:
- restart apache
Ovo govori zadatku da izvrši određeni rukovalac. U ovom slučaju, to se odnosi na rukovatelja restart apache, koji se može naći na dnu priručnika:
handlers:
- name: restart apache
service: name=httpd state=restarted
Rukovaoci su prikladni jer, uzimajući primjer, možda ćete htjeti ponovno pokrenuti Apache više puta. U ovom slučaju, ne morate ponavljati kreiranje zadatka svaki put kada trebate ponovno pokrenuti Apache, ali umjesto toga, možete se samo pozivati na isti rukovatelj svaki put.
Korak 3: Izvođenje playbooks-a
Recimo da želite implementirati Apache poslužitelj. Pa, kao što vidite, upravo smo za to izradili priručnik. Izvršavanje playbooka može se obaviti korištenjem ansible-playbooknaredbe. Na primjer, ako bismo izvršili ovaj playbook na svim poslužiteljima u webserverskategoriji (trebat ćete imati ovu kategoriju u svojoj /etc/ansible/hostsdatoteci), pokrenuli biste sljedeću naredbu s obzirom na to da je naziv vaše datoteke playbook apache.yml:
ansible-playbook -i webservers apache.yml
Čestitamo! Sada ste izvršili playbook na svim poslužiteljima u vašoj webserverskategoriji. Sada ćete samo morati pričekati da se implementacija završi i vidjet ćete da je Apache uspješno instaliran i konfiguriran na ovim poslužiteljima.