V Ansible je handler jako každá jiná úloha, ale spouští se pouze při zavolání nebo upozornění. Provede akci, když byla na spravovaném hostiteli provedena změna. Obslužné rutiny se používají při iniciaci sekundární změny, jako je spuštění nebo restartování služby po instalaci nebo dokonce opětovné načtení služby po provedení některých úprav v konfiguračních souborech. V tomto návodu si více osvětlíme handlery Ansible. Naučíme se používat handlery v ansible playbooku.
Ansible playbook soubor s handlerem
Abychom lépe porozuměli tomu, jak Handlers fungují, vezmeme si příklad souboru playbook – install_apache.yml – který nainstaluje webový server Apache a později restartuje službu Apache. V níže uvedeném příkladu je obslužná rutina upozorněna na restartování služby Apache brzy po instalaci. Toho je dosaženo pomocí modulu upozornění, jak je znázorněno. Všimněte si, že jméno „upozornění“ by se mělo shodovat s názvem obslužné rutiny, jak bylo uvedeno, jinak se v souboru playbooku objeví chyby.
Nyní spustíme soubor playbooku.
$ ansible-playbook /etc/ansible/install_apache.yml -K
Z výstupu můžete vidět, že se Handler spouští hned po úloze.
Více úkolů s více obslužnými nástroji
Navíc můžeme mít několik úloh, které volají více obslužných rutin. Zvažte soubor s příručkou níže.
Zde jsou 2 úkoly ke spuštění:
- Instalace webového serveru Apache
- Povolení provozu HTTP na firewallu UFW.
Po úspěšném provedení úkolů jsem zavolal všechny obslužné rutiny pomocí modulu ‚upozornění‘, jak je uvedeno níže. První handler restartuje Apache a druhý znovu načte UFW firewall.
Když je soubor playbook spuštěn, oba obslužné nástroje spustí Ansible hned po instalaci Apache a na bráně firewall je povolen provoz HTTP.
Sekundární akce prováděné zde handlery jsou:
- Restartování Apache
- Povolení a opětovné načtení brány firewall, aby se provedené změny projevily.
Závěr
Jak jste viděli, handlery jsou jako běžné úkoly, pouze se na ně odkazuje pomocí globálně jedinečného modulu zvaného ‚notify‘. Pokud není handler upozorněn, nespustí se. Pamatujte, že všechny obslužné programy se spustí po dokončení všech úkolů.
Přečtěte si také : Jak vytvořit Ansible role a používat je v Příručce