Jak používat značky v Ansible

Jak Pouzivat Znacky V Ansible



Hry, role a úkoly jsou strukturou ansible a tato struktura ansible obsahuje důležitý atribut, který se v Ansible nazývá tagy. Kdykoli spustíme playbook v Ansible, můžete použít příkazy -tags a –skip tags, abychom mohli provádět pouze určitou sérii úloh, her a rolí. Pokud máme playbook, který obsahuje tolik úloh, ale nechceme provádět všechny úlohy playbooku, místo provedení celého playbooku spustíme jen několik úloh pomocí příkazu tag v playbooku Ansible.

V tomto tématu budeme diskutovat o značkách, které slouží jako jeden z nejdůležitějších aspektů Ansible. Pokusíme se vysvětlit, co jsou tagy a jak fungují v Ansible, protože to je matoucí funkce platformy Ansible.







Playbook může například obsahovat tři povinnosti: instalace modulu, jeho konfigurace a kontrola stavu nasazeného modulu, například zda je služba spuštěna a přístupná. Protože prostě potřebujeme vidět stav modulů na několika vzdálených počítačích, použijeme v této situaci značky Ansible, místo abychom prováděli všechny úkoly v příručce. Umožňuje nám spouštět výhradně určitou operaci, což nám umožňuje zkrátit dobu běhu tím, že všechny související činnosti uchováme v jedné příručce.



Předpoklady použití značek v Ansible Playbook

Pro uvedení praktických příkladů do ansible softwaru musíme splnit následující požadavky.



Aby mohl provádět změny, musí být vyžadován řídicí server Ansible. Abychom mohli využít parametr tagu v softwaru Ansible, potřebujeme, aby s nimi komunikovali místní hostitelé. V tomto případě používáme místního hostitele po celou dobu provádění jako cílový vzdálený server. Vytvoříme playbooky, spustíme příkazy značky Ansible a budeme sledovat výsledky na vzdálených hostitelích ze zařízení ansible-controller.





Budeme se snažit využít různé scénáře k prozkoumání několika značek Ansible, aby student mohl snadno porozumět konceptu značek v učebnici Ansible.

Příklad 01: Přístup k jedné úloze v Ansible Playbook

Implementujeme v Ansible poskytnutím více úloh v playbooku a poté zpřístupníme pouze jednu úlohu pomocí značek v ní. K tomu nejprve vytvoříme playbook napsáním následujícího příkazu:



[root@master ansible]# nano ansible_tags.yml

Po vytvoření a spuštění playbooku ansible_tags.yml. Nyní začneme psát příkazy do playbooku. Nejprve předáme poskytnuté hostitele v parametru „hosts“, který použijeme „localhost“. Poté zapíšeme hodnotu „false“ do parametru „gather_facts“, abychom při spuštění playbooku nemohli získat další informace o localhost.

Poté začneme jednu po druhé vypisovat aktivity pod parametrem „úkoly“, které chceme provést. V prvním procesu zjistíme, zda je dokument na počítači localhost. Pokud je k dispozici, uložíme jej do parametru „registrovat“ a poté značce přidělíme jedinečný název, takže po spuštění playbooku bude pro nás snadný přístup ke značce. Ve druhé úloze uděláme totéž, co jsme udělali v první úloze, ale značka musí být jedinečná a poté použijeme možnost ladění k předvedení úlohy spolu se související zprávou.

- hostitelé:

- localhost
shromáždit_fakta: nepravda


úkoly:
- jméno: Zkontrolujte existenci souboru x`
stat: cesta=./host.yml
registr: souborExistuje
tagy: check_file


- ladění:
msg: '{{ 'Soubor existuje' if fileExists.stat.exists else 'Soubor nenalezen' }}'
tagy: check_file


- name: Zkontrolujte, zda je host.yml přístupný aktuálnímu uživateli
shell: stat -c '%a' ./host.yml
registrovat: přístupová cesta
tagy: check_access


- ladění:
msg: '{{ 'Soubor přístupný' if (accessPath.stdout|int) < 660 else 'Soubor není přístupný' }}'
tagy: check_access

Nyní uložíme playbook a poté jej zavřeme. Chceme spustit playbook ansible_tags.yml, takže napíšeme následující příkaz do terminálu Ansible, abychom uživatelům ukázali výstup.

[root@master ansible]# ansible-playbook ansible_tags.yml – tagy kontrolní_soubor

Po spuštění výše uvedeného příkazu získáme na oplátku požadovaný výstup. Jak je ukázáno níže, provede se pouze jedna úloha, která se zobrazí ve výstupu, což je „zkontrolovat existenci souboru“.

Příklad 02: Ignorování konkrétní značky v Ansible Playbook

Zde je druhý příklad značky Ansible, kde přejdeme ke značce „přeskočit“. Je na vás, zda chcete ignorovat všechny úkoly, nebo chcete ignorovat konkrétní úkol z playbooku v Ansible. Využíváme implementaci příkladu 1 a pak úlohu přeskočíme jednoduchým zapsáním níže uvedeného příkazu do terminálu Ansible.

[root@master ansible]# ansible-playbook ansible_tags.yml --skip-tags check_file

Z výše uvedeného příkazu jsme jednoduše ignorovali úlohu „zkontrolovat existenci souboru“. Nyní je ve výstupu zobrazen pouze jeden úkol, který je „soubor přístupný“ zeleným písmem.

Příklad 03: Vždy pokračujte ve spouštění úlohy v Ansible Playbook

Chystáme se implementovat třetí příklad založený na značce Ansible. V tomto příkladu použijeme tag „always“, což znamená, že konkrétní tag bude vždy spuštěn v Ansible Playbook. Pro spuštění playbooku použijte následující příkaz:

[root@master ansible]# nano ansible_tags.yml

V playbooku jsme vytvořili několik úloh ke spuštění, ale v poslední úloze jsme předali značku „vždy“, což je „smazat heslo z inventáře“. V playbooku jsou implementovány následující příkazy:

- hostitelé: všichni

shromáždit_fakta: nepravda


úkoly:
- jméno: Zkontrolujte existenci souboru
stat: cesta=./host.yml
registr: souborExistuje
delegát_pro: localhost
tagy: check_file


- ladění:
msg: '{{ 'Soubor existuje' if fileExists.stat.exists else 'Soubor nenalezen' }}'
tagy: check_file


- name: Zkontrolujte, zda je host.yml přístupný aktuálnímu uživateli
shell: stat -c '%a' ./host.yml
zaregistrovat: přístupová cesta
delegát_to: localhost
tagy: check_access


- ladění:
msg: '{{ 'Soubor přístupný' if (accessPath.stdout|int) < 660 else 'Soubor není přístupný' }}'
tagy: check_access


- jméno: Smazat heslo z inventáře
lineinfile:
cesta: '{{inventory_file}}'
regulární výraz: '\b{{item}}.*\b'
stav: nepřítomný
delegát_to: localhost
stát se: falešným
tagy: vždy
with_items:
- ansible_password

Poté vytvoříme soubor inventáře pro vytvoření spojení mezi řadičem a cílovým vzdáleným hostitelem. Níže je příkaz:

[root@master ansible]# nano host.yml

Zde je soubor inventáře, který obsahuje informace týkající se „Linux_host“ v Ansible.

Všechno:

hostitelé:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: *****
ansible_connection: ssh
ansible_port: 22

Abychom získali požadovaný výstup, spustíme v terminálu Ansible následující příkaz:

[root@master ansible]# ansible-playbook ansible_tags.yml --tags kontrolní_soubor -i host.yml

Závěr

Tagy v Ansible byly vysvětleny v tomto článku. Nyní rozumíme funkci značek a místům v Ansible, kde je použijeme. Abychom studentům pomohli pochopit koncept značek Ansible, vytvořili jsme řadu příkladů.