Come utilizzare i tag in Ansible

Come Utilizzare I Tag In Ansible



I giochi, i ruoli e le attività sono la struttura ansible e questa struttura ansible contiene l'attributo importante chiamato tag in Ansible. Ogni volta che lanciamo un playbook in Ansible, puoi utilizzare i comandi -tags e –skip tags in modo da poter eseguire solo una particolare serie di attività, giochi e ruoli. Se disponiamo di un playbook che contiene così tante attività, ma non vogliamo eseguire tutte le attività del playbook, invece di eseguire l'intero playbook, eseguiremo solo alcune attività utilizzando il comando tag nel playbook Ansible.

Discuteremo i tag in questo argomento, che rappresentano uno degli aspetti più importanti di Ansible. Cercheremo di spiegare cosa sono i tag e come funzionano i tag in Ansible perché questa è una caratteristica sconcertante della piattaforma Ansible.







Ad esempio, un playbook può contenere tre responsabilità: installare il modulo, configurarlo e controllare lo stato del modulo distribuito, ad esempio se il servizio è in esecuzione e accessibile. Poiché abbiamo semplicemente bisogno di vedere lo stato dei moduli su alcune macchine remote, in questa situazione utilizziamo i tag Ansible invece di eseguire tutte le attività nel playbook. Ci consente di eseguire esclusivamente una determinata operazione, consentendoci di ridurre i tempi di esecuzione mantenendo tutte le attività correlate in un unico playbook.



Prerequisiti per l'utilizzo dei tag in Ansible Playbook

Per inserire gli esempi pratici nel software ansible, dobbiamo soddisfare i seguenti requisiti.



Deve essere richiesto un server di controllo Ansible in modo che apporti modifiche. Per utilizzare il parametro tag nel software Ansible, abbiamo bisogno che gli host locali comunichino con loro. In questo caso, stiamo utilizzando l'host locale per tutta l'esecuzione come server remoto di destinazione. Creeremo playbook, eseguiremo comandi di tag Ansible e monitoreremo i risultati su host remoti dal dispositivo ansible-controller.





Mireremo a utilizzare diversi scenari per esaminare alcuni dei tag Ansible in modo che lo studente possa facilmente comprendere il concetto di tag in un playbook Ansible.

Esempio 01: accesso a una singola attività in Ansible Playbook

Implementeremo in Ansible fornendo più attività nel playbook e quindi accederemo a una singola attività utilizzando i tag in essa contenuti. Per fare ciò, creeremo prima il playbook scrivendo il seguente comando:



[root@master ansible]# nano ansible_tags.yml

Dopo aver creato e avviato il playbook ansible_tags.yml. Ora inizieremo a scrivere i comandi nel playbook. Innanzitutto, passeremo gli host forniti nel parametro 'hosts' che useremo 'localhost'. Quindi, scriveremo il valore 'false' nel parametro 'gather_facts' in modo che non possiamo ottenere le informazioni extra sul localhost quando eseguiamo il playbook.

Successivamente, inizieremo a elencare le attività sotto il parametro 'attività' una per una che vogliamo eseguire. Nel primo processo determineremo se il documento è presente sulla macchina localhost. Se è disponibile, lo memorizzeremo nel parametro 'register' e quindi daremo il nome univoco al tag in modo che quando eseguiremo il playbook, sarà facile per noi accedere al tag. Nella seconda attività, faremo lo stesso che abbiamo fatto nella prima attività, ma il tag deve essere univoco e quindi utilizzeremo l'opzione di debug per mostrare l'attività insieme al relativo messaggio.

- host:

- host locale
collect_facts: falso


compiti:
- nome: controlla l'esistenza del file x`
stat: percorso=./host.yml
registro: fileEsiste
tag: check_file


- debug:
msg: '{{ 'File esiste' if fileExists.stat.exists else 'File non trovato' }}'
tag: check_file


- nome: controlla se host.yml è accessibile dall'utente corrente
shell: stat -c '%a' ./host.yml
registro: accessPath
tag: check_access


- debug:
msg: '{{ 'File accessibile' if (accessPath.stdout|int) < 660 else 'File non accessibile' }}'
tag: check_access

Ora salveremo il playbook e poi lo chiuderemo. Vogliamo eseguire il playbook ansible_tags.yml, quindi scriveremo il seguente comando nel terminale Ansible per mostrare l'output agli utenti.

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

Dopo aver eseguito il comando sopra, otterremo in cambio l'output desiderato. Come mostrato di seguito, viene eseguita solo un'attività e viene visualizzata nell'output che è 'controlla l'esistenza del file'.

Esempio 02: Ignora particolare tag in Ansible Playbook

Ecco il secondo esempio del tag Ansible in cui andremo al tag 'skip'. Sta a te decidere se vuoi ignorare tutte le attività o vuoi ignorare una particolare attività del playbook in Ansible. Stiamo utilizzando l'implementazione dell'esempio 1 e quindi salteremo semplicemente l'attività semplicemente scrivendo l'istruzione seguente nel terminale Ansible.

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

Dal comando sopra, abbiamo semplicemente ignorato l'attività 'controlla l'esistenza del file'. Ora, nell'output viene visualizzata solo una singola attività che è 'file accessibile' in carattere verde.

Esempio 03: continua sempre a eseguire l'attività in Ansible Playbook

Implementeremo il terzo esempio basato sul tag Ansible. In questo esempio, utilizzeremo il tag 'sempre', il che significa che un particolare tag verrà sempre eseguito nel Playbook Ansible. Per avviare il playbook, utilizzare il seguente comando:

[root@master ansible]# nano ansible_tags.yml

Nel playbook, abbiamo creato più attività da eseguire ma abbiamo passato il tag 'sempre' nell'ultima attività che è 'elimina la password dall'inventario'. Di seguito sono riportati i comandi implementati nel playbook:

- host: tutti

collect_facts: falso


compiti:
- nome: controlla l'esistenza del file
stat: percorso=./host.yml
registro: fileEsiste
delegate_to: host locale
tag: check_file


- debug:
msg: '{{ 'File esiste' if fileExists.stat.exists else 'File non trovato' }}'
tag: check_file


- nome: controlla se host.yml è accessibile dall'utente corrente
shell: stat -c '%a' ./host.yml
registro: accessPath
delegate_to: host locale
tag: check_access


- debug:
msg: '{{ 'File accessibile' if (accessPath.stdout|int) < 660 else 'File non accessibile' }}'
tag: check_access


- nome: elimina la password dall'inventario
lineinfile:
percorso: '{{file_inventario}}'
regexp: '\b{{elemento}}.*\b'
stato: assente
delegate_to: host locale
diventare: falso
tag: sempre
with_items:
- ansible_password

Successivamente, creeremo il file di inventario per creare la connessione tra il controller e l'host remoto di destinazione. Di seguito il comando:

[root@master ansible]# nano host.yml

Ecco il file di inventario che contiene le informazioni relative al 'Linux_host' in Ansible.

Tutto:

host:
Host_Linux:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

Per ottenere l'output desiderato, eseguiremo il seguente comando nel terminale Ansible:

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

Conclusione

I tag in Ansible sono stati spiegati in questo articolo. Ora comprendiamo la funzione dei tag e i punti in Ansible in cui li applicheremo. Per aiutare lo studente a comprendere e afferrare il concetto di tag Ansible, abbiamo sviluppato una serie di esempi.