Kako uporabljati oznake v Ansible

Kako Uporabljati Oznake V Ansible



Igre, vloge in naloge so ansible struktura in ta ansible struktura vsebuje pomemben atribut, ki se v Ansible imenuje oznake. Kadarkoli zaženemo playbook v Ansibleu, lahko uporabite ukaza -tags in –skip tags, tako da lahko izvedemo samo določen niz nalog, iger in vlog. Če imamo playbook, ki vsebuje toliko nalog, vendar ne želimo izvesti vseh nalog playbooka, bomo namesto izvajanja celotnega playbooka samo zagnali nekaj nalog z uporabo ukaza tag v Ansible playbooku.

V tej temi bomo razpravljali o oznakah, ki služijo kot eden najpomembnejših vidikov Ansiblea. Poskušali bomo razložiti, kaj so oznake in kako oznake delujejo v Ansibleu, ker je to zapletena funkcija platforme Ansible.







Na primer, priročnik lahko vsebuje tri odgovornosti: namestitev modula, njegovo konfiguriranje in preverjanje statusa razporejenega modula, na primer, ali se storitev izvaja in je dostopna. Ker preprosto moramo videti stanje modulov na nekaj oddaljenih strojih, v tej situaciji uporabimo oznake Ansible, namesto da bi izvedli vse naloge v priročniku. Omogoča nam, da izvajamo izključno določeno operacijo, kar nam omogoča, da skrajšamo čas izvajanja tako, da vse povezane dejavnosti hranimo v eni sami knjigi.



Predpogoji za uporabo oznak v Ansible Playbook

Za umestitev praktičnih primerov v programsko opremo ansible moramo izpolniti naslednje zahteve.



Potreben je nadzorni strežnik Ansible, da bo izvajal spremembe. Za uporabo parametra oznake v programski opremi Ansible potrebujemo lokalne gostitelje za komunikacijo z njimi. V tem primeru uporabljamo lokalnega gostitelja skozi celotno izvajanje kot ciljni oddaljeni strežnik. Ustvarili bomo knjige iger, izvajali ukaze oznak Ansible in spremljali rezultate na oddaljenih gostiteljih iz naprave ansible-controller.





Prizadevali si bomo uporabiti različne scenarije, da bi preučili nekaj oznak Ansible, tako da lahko učenec zlahka razume koncept oznak v priročniku Ansible playbook.

Primer 01: Dostop do posamezne naloge v Ansible Playbook

V Ansible bomo implementirali tako, da bomo v priročniku zagotovili več nalog, nato pa bomo z uporabo oznak v njej dostopali samo do ene naloge. Da bi to naredili, bomo najprej ustvarili playbook tako, da bomo napisali naslednji ukaz:



[root@master ansible]# nano ansible_tags.yml

Po ustvarjanju in zagonu knjige ansible_tags.yml. Zdaj bomo začeli zapisovati ukaze v playbook. Najprej bomo podane gostitelje posredovali v parametru »gostitelji«, ki ga bomo uporabili »localhost«. Nato bomo zapisali vrednost »false« v parameter »gather_facts«, tako da ne bomo mogli dobiti dodatnih informacij o lokalnem gostitelju, ko bomo izvajali playbook.

Po tem bomo začeli eno za drugo navajati dejavnosti pod parametrom »naloge«, ki jih želimo izvesti. V prvem postopku bomo ugotovili, ali je dokument na računalniku lokalnega gostitelja. Če je na voljo, ga bomo shranili v parameter »register«, nato pa bomo oznaki dali edinstveno ime, tako da nam bo, ko bomo izvedli playbook, zlahka dostopali do oznake. Pri drugi nalogi bomo naredili enako kot pri prvi nalogi, vendar mora biti oznaka edinstvena, nato pa bomo uporabili možnost odpravljanja napak, da predstavimo nalogo skupaj s povezanim sporočilom.

- gostitelji:

- lokalni gostitelj
zbiranje_dejstev: napačno


naloge:
- ime: Preverite obstoj datoteke x`
stat: pot=./gostitelj.yml
register: fileExists
oznake: check_file


- odpravljanje napak:
msg: '{{ 'Datoteka obstaja' if fileExists.stat.exists else 'Datoteke ni mogoče najti' }}'
oznake: check_file


- name: Preverite, ali je host.yml dostopen trenutnemu uporabniku
lupina: stat -c '%a' ./host.yml
register: accessPath
oznake: check_access


- odpravljanje napak:
msg: '{{ 'Datoteka je dostopna' if (accessPath.stdout|int) < 660 else 'Datoteka ni dostopna' }}'
oznake: check_access

Zdaj bomo shranili playbook in ga nato zaprli. Želimo zagnati priročnik ansible_tags.yml, zato bomo v terminal Ansible zapisali naslednji ukaz, da uporabnikom predstavimo izhod.

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

Po izvedbi zgornjega ukaza bomo v zameno dobili želeni rezultat. Kot je prikazano spodaj, se izvede samo ena naloga, ki je prikazana v izhodu, ki je »preveri obstoj datoteke«.

Primer 02: Ignorirajte določeno oznako v Ansible Playbook

Tukaj je drugi primer oznake Ansible, kjer gremo na oznako »preskoči«. Od vas je odvisno, ali želite ignorirati vse naloge ali želite ignorirati določeno nalogo v priročniku v Ansibleu. Uporabljamo implementacijo primera 1 in potem bomo preprosto preskočili nalogo tako, da preprosto napišemo spodnjo izjavo v terminal Ansible.

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

Iz zgornjega ukaza smo preprosto prezrli nalogo »preveri obstoj datoteke«. Zdaj je v izhodu prikazana samo ena naloga, ki je »datoteka dostopna« z zeleno pisavo.

Primer 03: Nalogo vedno izvajajte v Ansible Playbook

Tretji primer bomo implementirali na podlagi oznake Ansible. V tem primeru bomo uporabili oznako »vedno«, kar pomeni, da se bo določena oznaka vedno izvajala v Ansible Playbook. Za zagon playbooka uporabite naslednji ukaz:

[root@master ansible]# nano ansible_tags.yml

V priročniku smo ustvarili več nalog za izvajanje, vendar smo posredovali oznako »vedno« v zadnji nalogi, ki je »izbriši geslo iz inventarja«. Sledi ukaz, implementiran v priročniku:

- gostitelji: vsi

zbiranje_dejstev: napačno


naloge:
- ime: Preverite obstoj datoteke
stat: pot=./gostitelj.yml
register: fileExists
delegat_to: lokalni gostitelj
oznake: check_file


- odpravljanje napak:
msg: '{{ 'Datoteka obstaja' if fileExists.stat.exists else 'Datoteke ni mogoče najti' }}'
oznake: check_file


- name: Preverite, ali je host.yml dostopen trenutnemu uporabniku
lupina: stat -c '%a' ./host.yml
register: accessPath
delegat_to: lokalni gostitelj
oznake: check_access


- odpravljanje napak:
msg: '{{ 'Datoteka je dostopna' if (accessPath.stdout|int) < 660 else 'Datoteka ni dostopna' }}'
oznake: check_access


- ime: Izbriši geslo iz inventarja
lineinfile:
pot: '{{inventory_file}}'
regexp: '\b{{item}}.*\b'
stanje: odsoten
delegat_to: lokalni gostitelj
postati: lažno
Oznake: vedno
with_items:
- ansible_geslo

Po tem bomo ustvarili datoteko inventarja za vzpostavitev povezave med krmilnikom in ciljnim oddaljenim gostiteljem. Spodaj je ukaz:

[root@master ansible]# nano host.yml

Tukaj je popisna datoteka, ki vsebuje informacije, povezane z »Linux_host« v Ansible.

Vse:

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

Da bi dobili želeni rezultat, bomo v terminalu Ansible zagnali naslednji ukaz:

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

Zaključek

Oznake v Ansible so bile razložene v tem članku. Zdaj razumemo funkcijo oznak in mesta v Ansibleu, kjer jih bomo uporabili. Da bi učencu pomagali razumeti koncept oznak Ansible, smo razvili različne primere.