Com utilitzar les etiquetes a Ansible

Com Utilitzar Les Etiquetes A Ansible



Les obres, els rols i les tasques són l'estructura ansible i aquesta estructura ansible conté l'atribut important que s'anomena etiquetes a Ansible. Sempre que iniciem un llibre de jugades a Ansible, podeu utilitzar les ordres -tags i –skip tags perquè només puguem executar una sèrie de tasques, obres i rols en particular. Si tenim un llibre de jugades que conté tantes tasques, però no volem executar totes les tasques del llibre de jugades, en comptes d'executar tot el llibre de jugades, només executarem algunes tasques utilitzant l'ordre d'etiqueta al llibre de jugades d'Ansible.

Anem a parlar de les etiquetes en aquest tema, que serveixen com una de les facetes més importants d'Ansible. Intentarem explicar què són les etiquetes i com funcionen les etiquetes a Ansible perquè aquesta és una característica desconcertant de la plataforma Ansible.







Per exemple, un llibre de jocs pot contenir tres responsabilitats: instal·lar el mòdul, configurar-lo i comprovar l'estat del mòdul desplegat, com ara si el servei s'està executant i accessible. Com que només necessitem veure l'estat dels mòduls en unes quantes màquines remotes, utilitzem etiquetes Ansible en aquesta situació en lloc d'executar totes les tasques del llibre de jugades. Ens permet executar una operació determinada de manera exclusiva, la qual cosa ens permet reduir el temps d'execució mantenint totes les activitats relacionades en un únic llibre de jugades.



Requisits previs per utilitzar les etiquetes a Ansible Playbook

Per posar els exemples pràctics al programari ansible, hem de complir els requisits següents.



S'ha de requerir un servidor de control Ansible perquè faci canvis. Per utilitzar el paràmetre d'etiqueta al programari Ansible, necessitem que els amfitrions locals es comuniquin amb ells. En aquest cas, estem utilitzant l'amfitrió local durant tota l'execució com a servidor remot de destinació. Crearem llibres de jugades, executarem ordres d'etiquetes Ansible i supervisarem els resultats en amfitrions remots des del dispositiu controlador ansible.





Intentarem emprar diferents escenaris per examinar algunes de les etiquetes Ansible perquè l'alumne pugui entendre fàcilment el concepte d'etiquetes en un llibre de jugades Ansible.

Exemple 01: Accés a una única tasca a Ansible Playbook

Implementarem a Ansible proporcionant diverses tasques al llibre de jugades i només accedirem a una única tasca utilitzant les etiquetes que hi ha. Per fer-ho, primer crearem el llibre de jugades escrivint l'ordre següent:



[root@master ansible]# nano ansible_tags.yml

Després de crear i llançar el llibre de jugades ansible_tags.yml. Ara començarem a escriure les ordres al llibre de jugades. Primer, passarem els hosts proporcionats al 'paràmetre hosts' que utilitzarem 'localhost'. Aleshores, escriurem el valor 'fals' al paràmetre 'gather_facts' de manera que no puguem obtenir la informació addicional sobre el localhost quan executem el playbook.

Després d'això, començarem a enumerar les activitats sota el paràmetre 'tasques' una per una que volem executar. Determinarem si el document es troba a la màquina localhost en el primer procés. Si està disponible, l'emmagatzemarem al paràmetre “registre” i després donarem el nom únic a l'etiqueta perquè quan executem el playbook ens serà fàcil accedir a l'etiqueta. A la segona tasca, farem el mateix que hem fet a la primera, però l'etiqueta ha de ser única i després utilitzarem l'opció de depuració per mostrar la tasca juntament amb el missatge relacionat.

- amfitrions:

- host local
gather_facts: fals


tasques:
- nom: comproveu l'existència del fitxer x`
stat: ruta=./host.yml
registre: fitxerExists
etiquetes: check_file


- depuració:
msg: '{{ 'El fitxer existeix' si fileExists.stat.exists sinó 'El fitxer no s'ha trobat' }}'
etiquetes: check_file


- nom: comproveu si host.yml és accessible per l'usuari actual
shell: stat -c '%a' ./host.yml
registre: accessPath
etiquetes: check_access


- depuració:
msg: '{{ 'Fitxer accessible' si (accessPath.stdout|int) < 660 sinó 'Fitxer no accessible' }}'
etiquetes: check_access

Ara, desarem el llibre de jugades i després el tancarem. Volem executar el playbook ansible_tags.yml, de manera que escriurem la següent comanda al terminal Ansible per mostrar la sortida als usuaris.

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

Després d'executar l'ordre anterior, obtindrem la sortida desitjada a canvi. Com es mostra a continuació, només s'executa una tasca i que es mostra a la sortida que és 'comprova l'existència del fitxer'.

Exemple 02: Ignoreu l'etiqueta particular a Ansible Playbook

Aquí teniu el segon exemple de l'etiqueta Ansible on anem a l'etiqueta 'omet'. Depèn de vostè si voleu ignorar totes les tasques o si voleu ignorar una tasca concreta del llibre de jugades a Ansible. Estem utilitzant la implementació de l'exemple 1 i, a continuació, ens saltarem la tasca simplement escrivint la declaració següent al terminal Ansible.

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

Des de l'ordre anterior, simplement hem ignorat la tasca de 'comprovar l'existència del fitxer'. Ara, només es mostra una única tasca a la sortida que és 'accessible al fitxer' amb font verda.

Exemple 03: seguiu executant sempre la tasca a Ansible Playbook

Implementarem el tercer exemple basat en l'etiqueta Ansible. En aquest exemple, utilitzarem l'etiqueta 'sempre', que significa que una etiqueta determinada sempre s'executarà a l'Ansible Playbook. Per iniciar el llibre de jugades, utilitzeu l'ordre següent:

[root@master ansible]# nano ansible_tags.yml

Al llibre de jugades, hem creat diverses tasques per executar, però hem passat l'etiqueta 'sempre' a l'última tasca que és 'suprimir la contrasenya de l'inventari'. Les següents són les ordres implementades al llibre de jugades:

- amfitrions: tots

gather_facts: fals


tasques:
- nom: comproveu l'existència del fitxer
stat: ruta=./host.yml
registre: fitxerExists
delegat_a: host local
etiquetes: check_file


- depuració:
msg: '{{ 'El fitxer existeix' si fileExists.stat.exists sinó 'El fitxer no s'ha trobat' }}'
etiquetes: check_file


- nom: comproveu si host.yml és accessible per l'usuari actual
shell: stat -c '%a' ./host.yml
registre: accessPath
delegat_a: host local
etiquetes: check_access


- depuració:
msg: '{{ 'Fitxer accessible' si (accessPath.stdout|int) < 660 sinó 'Fitxer no accessible' }}'
etiquetes: check_access


- nom: elimina la contrasenya de l'inventari
lineinfile:
camí: '{{inventory_file}}'
expressió regular: '\b{{element}}.*\b'
estat: absent
delegat_a: host local
esdevenir: fals
Etiquetes: sempre
amb_elements:
- contrasenya_ansible

Després d'això, crearem el fitxer d'inventari per crear la connexió entre el controlador i l'amfitrió remot de destinació. A continuació es mostra l'ordre:

[root@master ansible]# nano host.yml

Aquí teniu el fitxer d'inventari que conté la informació relacionada amb el 'Linux_host' a Ansible.

Tots:

amfitrions:
Linux_Host:
host_ansible: 192.168.3.229
ansible_user: ansible
contrasenya_ansible: ******
ansible_connection: ssh
port_ansible: 22

Per obtenir la sortida desitjada, executarem la següent comanda al terminal Ansible:

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

Conclusió

Les etiquetes d'Ansible s'han explicat en aquest article. Ara entenem la funció de les etiquetes i els llocs d'Ansible on les aplicarem. Per ajudar l'alumne a entendre el concepte d'etiquetes Ansible, hem desenvolupat una varietat d'exemples.