Kako koristiti oznake u Ansibleu

Kako Koristiti Oznake U Ansibleu



Predstave, uloge i zadaci su struktura ansiblea i ova struktura ansiblea sadrži važan atribut koji se u Ansibleu zove oznake. Kad god pokrenemo playbook u Ansibleu, možete upotrijebiti naredbe -tags i –skip tags tako da možemo izvršiti samo određeni niz zadataka, igara i uloga. Ako imamo playbook koji sadrži toliko zadataka, ali ne želimo izvršiti sve zadatke playbooka, umjesto da izvršimo cijeli playbook, samo ćemo pokrenuti nekoliko zadataka pomoću naredbe tag u Ansible playbooku.

U ovoj ćemo temi raspravljati o oznakama koje služe kao jedan od najvažnijih aspekata Ansiblea. Pokušat ćemo objasniti što su oznake i kako oznake funkcioniraju u Ansibleu jer je to zbunjujuća značajka Ansible platforme.







Na primjer, priručnik može sadržavati tri odgovornosti: instaliranje modula, njegovo konfiguriranje i provjeru statusa raspoređenog modula, poput toga je li usluga pokrenuta i dostupna. Budući da jednostavno trebamo vidjeti stanje modula na nekoliko udaljenih strojeva, u ovoj situaciji koristimo oznake Ansible umjesto izvršavanja svih zadataka u priručniku. Omogućuje nam pokretanje isključivo određene operacije, što nam omogućuje smanjenje vremena izvođenja držeći sve povezane aktivnosti u jednom priručniku.



Preduvjeti za korištenje oznaka u Ansible Playbooku

Za postavljanje praktičnih primjera u ansible softver, moramo ispuniti sljedeće zahtjeve.



Ansible kontrolni poslužitelj mora biti potreban kako bi mogao vršiti promjene. Da bismo koristili parametar oznake u Ansible softveru, potrebni su nam lokalni hostovi za komunikaciju s njima. U ovom slučaju koristimo lokalno računalo tijekom cijelog izvođenja kao ciljni udaljeni poslužitelj. Izradit ćemo priručnike, izvršavati naredbe Ansible tagova i pratiti rezultate na udaljenim hostovima s uređaja ansible-controller.





Nastojat ćemo upotrijebiti različite scenarije za ispitivanje nekoliko Ansible oznaka kako bi učenik mogao lako razumjeti koncept oznaka u Ansible playbooku.

Primjer 01: Pristup jednom zadatku u Ansible Playbooku

Implementirat ćemo u Ansible pružajući više zadataka u priručniku, a zatim ćemo pristupiti samo jednom zadatku korištenjem oznaka u njemu. Da bismo to učinili, prvo ćemo kreirati playbook pisanjem sljedeće naredbe:



[root@master ansible]# nano ansible_tags.yml

Nakon izrade i pokretanja priručnika ansible_tags.yml. Sada ćemo početi pisati naredbe u knjižicu. Prvo ćemo proslijediti navedene hostove u parametru 'hosts' koji ćemo koristiti 'localhost'. Zatim ćemo napisati 'false' vrijednost u parametar 'gather_facts' tako da ne možemo dobiti dodatne informacije o lokalnom hostu kada izvršavamo playbook.

Nakon toga, počet ćemo ispisivati ​​aktivnosti pod parametrom “tasks” jednu po jednu koju želimo izvršiti. Utvrdit ćemo postoji li dokument na lokalnom računalu u prvom procesu. Ako je dostupan, pohranit ćemo ga u parametar 'registar', a zatim ćemo oznaci dodijeliti jedinstveno ime tako da ćemo, kada izvršimo playbook, lako pristupiti oznaci. U drugom zadatku učinit ćemo isto što smo učinili u prvom zadatku, ali oznaka mora biti jedinstvena, a zatim ćemo upotrijebiti opciju otklanjanja pogrešaka da prikažemo zadatak zajedno s povezanom porukom.

- domaćini:

- lokalni domaćin
skup_činjenica: netočno


zadaci:
- naziv: Provjerite postojanje datoteke x`
stat: put=./host.yml
registar: datotekaPostoji
oznake: check_file


- ispravljanje pogrešaka:
msg: '{{ 'Datoteka postoji' if fileExists.stat.exists else 'Datoteka nije pronađena' }}'
oznake: check_file


- name: Provjerite je li host.yml dostupan trenutnom korisniku
ljuska: stat -c '%a' ./host.yml
registar: pristupna staza
oznake: check_access


- ispravljanje pogrešaka:
msg: '{{ 'Datoteka dostupna' if (accessPath.stdout|int) < 660 else 'Datoteka nije dostupna' }}'
oznake: check_access

Sada ćemo spremiti knjigu i zatvoriti je. Želimo pokrenuti ansible_tags.yml priručnik pa ćemo napisati sljedeću naredbu u Ansible terminalu kako bismo prikazali izlaz korisnicima.

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

Nakon pokretanja gornje naredbe, zauzvrat ćemo dobiti željeni izlaz. Kao što je prikazano u nastavku, samo se jedan zadatak izvršava i on se prikazuje u izlazu, a to je 'provjeri postojanje datoteke'.

Primjer 02: Ignorirajte određenu oznaku u Ansible Playbooku

Evo drugog primjera oznake Ansible gdje idemo na oznaku 'preskoči'. Na vama je da li želite ignorirati sve zadatke ili želite ignorirati određeni zadatak u priručniku u Ansibleu. Koristimo implementaciju primjera 1, a zatim ćemo jednostavno preskočiti zadatak jednostavnim pisanjem donje izjave u Ansible terminalu.

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

Iz gornje naredbe jednostavno smo zanemarili zadatak 'provjeri postojanje datoteke'. Sada se samo jedan zadatak prikazuje u izlazu koji je 'datoteci dostupan' zelenim fontom.

Primjer 03: Uvijek nastavite s pokretanjem zadatka u Ansible Playbooku

Treći primjer implementirat ćemo na temelju oznake Ansible. U ovom primjeru koristit ćemo oznaku 'always' što znači da će se određena oznaka uvijek izvršavati u Ansible Playbooku. Za pokretanje playbook-a koristite sljedeću naredbu:

[root@master ansible]# nano ansible_tags.yml

U priručniku smo stvorili više zadataka za pokretanje, ali smo proslijedili oznaku 'uvijek' u posljednjem zadatku koji glasi 'izbriši lozinku iz inventara'. Sljedeće su naredbe implementirane u priručniku:

- domaćini: svi

skup_činjenica: netočno


zadaci:
- naziv: Provjerite postojanje datoteke
stat: put=./host.yml
registar: datotekaPostoji
delegat_to: lokalni host
oznake: check_file


- ispravljanje pogrešaka:
msg: '{{ 'Datoteka postoji' if fileExists.stat.exists else 'Datoteka nije pronađena' }}'
oznake: check_file


- name: Provjerite je li host.yml dostupan trenutnom korisniku
ljuska: stat -c '%a' ./host.yml
registar: pristupna staza
delegat_to: lokalni host
oznake: check_access


- ispravljanje pogrešaka:
msg: '{{ 'Datoteka dostupna' if (accessPath.stdout|int) < 660 else 'Datoteka nije dostupna' }}'
oznake: check_access


- ime: Izbriši lozinku iz inventara
lineinfile:
put: '{{inventory_file}}'
regularni izraz: '\b{{item}}.*\b'
stanje: odsutan
delegat_to: lokalni host
postati: lažan
oznake: uvijek
sa_stavkama:
- ansible_password

Nakon toga, izradit ćemo datoteku inventara za izgradnju veze između kontrolera i ciljnog udaljenog glavnog računala. Ispod je naredba:

[root@master ansible]# nano host.yml

Ovdje je datoteka inventara koja sadrži informacije povezane s 'Linux_host' u Ansibleu.

Svi:

domaćini:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

Da bismo dobili željeni izlaz, pokrenut ćemo sljedeću naredbu u Ansible terminalu:

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

Zaključak

Oznake u Ansibleu objašnjene su u ovom članku. Sada razumijemo funkciju oznaka i mjesta u Ansibleu gdje ćemo ih primijeniti. Kako bismo pomogli učeniku da razumije koncept ansible oznaka, razvili smo razne primjere.