1. lépés: YAML (.yml) fájl létrehozása
2. lépés: A játékkönyvek megértése: feladatok és kezelők
3. lépés: A játékkönyvek végrehajtása
Az Ansible játékkönyvei az Ansible-t olyan praktikussá teszik. A játékfüzetek több modullal is lehetővé teszik rutinfeladatok végrehajtását. Mikor használjunk játékkönyveket?
Vessünk egy pillantást egy rutin karbantartási feladatra: a szerverek frissítésére. Ehhez nem kellene játékkönyvet használnunk, mivel ez csak egy parancs: apt-get update. Csak egyetlen paranccsal frissíthetjük szoftverünket az összes szerverünkön. A web- vagy adatbázisszerverhez hasonló dolgok telepítéséhez azonban több munkára van szükség: nem csak egyetlen parancsra. A játékkönyvek erre az esetre alkalmasak. Lehetővé teszik több modul használatát, amelyek egy szerveren végrehajtható parancsok. Például vannak modulok fájlok másolására és shell-parancsok végrehajtására SSH-n keresztül.
Tehát hogyan használjuk a játékkönyveket? Lássunk neki!
1. lépés: YAML ( .yml) fájl létrehozása
A lehetséges játékkönyvek fájlként vannak megírva .yml; Az Ansible nem tud más formátumot értelmezni. Egy példa Ansible playbook így néz ki:
---
- 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
(Az Ansible dokumentációjából átvéve)
2. lépés: A játékkönyvek megértése: feladatok és kezelők
Amint látja, ebben a játékkönyvben több rész is található. Először is látni fogja a hosts:vonalat. Ez határozza meg, hogy mely gazdagépeken kell végrehajtani a játékkönyvet. Azt is láthatja, hogy definiáltunk néhány változót, amelyek elérhetők és használhatók a játékkönyvben. Ezután számos feladatot fog látni. Ezeket a feladatokat például „Install Apache” néven nevezhetjük el. A példa második feladata az Apache konfigurációjába ír. Ezután a következőket fogja látni:
notify:
- restart apache
Ez megmondja a feladatnak, hogy hajtson végre egy bizonyos kezelőt. Ebben az esetben ez a kezelőre vonatkozik restart apache, amely a játékfüzet alján található:
handlers:
- name: restart apache
service: name=httpd state=restarted
A kezelők kényelmesek, mert a példán keresztül érdemes lehet többször is újraindítani az Apache-t. Ebben az esetben nem kell megismételnie a feladat létrehozását minden egyes alkalommal, amikor újra kell indítania az Apache-ot, hanem minden alkalommal ugyanarra a kezelőre hivatkozhat.
3. lépés: A játékkönyvek végrehajtása
Tegyük fel, hogy egy Apache-kiszolgálót szeretne telepíteni. Nos, amint látja, ehhez készítettünk egy játékkönyvet. A játékkönyvek végrehajtása a ansible-playbookparanccsal végezhető el . Például, ha ezt a játékkönyvet a webserverskategória összes szerverén végrehajtanánk (a kategóriának szerepelnie kell a /etc/ansible/hostsfájlban), akkor a következő parancsot kell futtatnia, mivel a játékkönyvfájl neve apache.yml:
ansible-playbook -i webservers apache.yml
Gratulálunk! Most végrehajtott egy játékkönyvet a webserverskategóriájába tartozó összes szerveren . Most már csak meg kell várnia a központi telepítés befejezését, és látni fogja, hogy az Apache sikeresen telepítve és konfigurálva lett ezeken a kiszolgálókon.