Come usare i tag in Ansible

Come usare i tag in Ansible

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

Discuteremo di tag in questo argomento, che fungono da uno dei aspetti più importanti di Ansible. Cercheremo di spiegare quali sono i tag e come operano 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. Dato che dobbiamo semplicemente vedere lo stato dei moduli su alcune macchine remote, utilizziamo tag Ansible in questa situazione piuttosto che eseguire tutte le attività nel playbook. Ci consente di eseguire una determinata operazione esclusivamente, permettendoci di ridurre il tempo di esecuzione mantenendo tutte le attività correlate in un singolo playbook.

Prerequisiti di utilizzo dei tag in Ansible Playbook

Per mettere gli esempi pratici nel software Ansible, dobbiamo soddisfare i seguenti requisiti.

Un server di controllo Ansible deve essere necessario in modo che apporti le modifiche. Per utilizzare il parametro del tag nel software Ansible, abbiamo bisogno degli host locali per comunicare con loro. In questo caso, stiamo usando l'host locale durante l'esecuzione come server remoto target. Creeremo playbook, eseguiremo comandi tag Ansible e monitoreremo i risultati su host remoti dal dispositivo Ansible-Controller.

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

Esempio 01: Accesso a un'unica attività in Ansible Playbook

Lo implementeremo in Ansible fornendo più attività nel playbook e quindi accederemo a una sola attività utilizzando i tag in esso. Per fare ciò, creeremo prima il playbook scrivendo il seguente comando:

[root@master ansible]# nano ansible_tags.YML

Dopo aver creato e lanciato Ansible_tags.Playbook YML. Ora inizieremo a scrivere i comandi nel playbook. Innanzitutto, passeremo gli host forniti nel parametro "host" che useremo "localhost". Quindi, scriveremo il valore "falso" nel parametro "gall_facts" in modo da non poter ottenere le informazioni extra sul localhost quando eseguiamo il playbook.

Successivamente, inizieremo a elencare le attività in base al parametro "Attività" uno per uno che vogliamo eseguire. Determineremo se il documento è presente sulla macchina LocalHost nel primo processo. Se è disponibile, lo memorizzeremo nel parametro "Registra" e quindi daremo il nome univoco al tag in modo che quando eseguiamo il playbook, sarà facile per noi accedere al tag. Nel secondo compito, faremo lo stesso che abbiamo fatto nella prima attività, ma il tag deve essere unico e quindi useremo l'opzione di debug per mostrare l'attività insieme al messaggio correlato.

- ospiti:
- Localhost
Gather_Facts: false
compiti:
- Nome: controlla l'esistenza del file x '
Stat: Path =./ospite.YML
Registro: fileexisti
Tag: check_file
- debug:
msg: "'file esiste' se fileexists.statistica.esiste altro "file non trovato" "
Tag: check_file
- Nome: controlla se host.YML è accessibile dall'utente corrente
Shell: Stat -c "%A" ./ospite.YML
Registro: AccessPath
Tag: check_access
- debug:
msg: "'file accessibile' if (accesspath.stdout | int) < 660 else 'File is not accessible' "
Tag: check_access

Ora salveremo il playbook e poi lo chiuderemo. Vogliamo eseguire l'ansible_tags.Playbook 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 una sola attività e che viene visualizzata nell'output che è "Controlla l'esistenza del file".

Esempio 02: ignora il tag particolare in Ansible Playbook

Ecco il secondo esempio del tag Ansible in cui andiamo al tag "salta". Dipende da te se vuoi ignorare tutte le attività o vuoi ignorare un compito particolare del playbook in Ansible. Stiamo utilizzando l'implementazione dell'esempio 1 e quindi salteremo 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 esistenza del file". Ora, viene visualizzata una sola attività nell'output che è "accessibile al file" nel carattere verde.

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

Implementeremo il terzo esempio in base al tag Ansible. In questo esempio, useremo il tag "sempre", il che significa che un tag particolare eseguirà sempre nel playbook Ansible. Per avviare il playbook, utilizzare il comando seguente:

[root@master ansible]# nano ansible_tags.YML

Nel playbook, abbiamo creato più attività da eseguire, ma abbiamo superato il tag "sempre" nell'ultima attività che è "Elimina la password dall'inventario". Di seguito sono riportati il ​​comando implementato nel playbook:

- Host: tutto
Gather_Facts: false
compiti:
- Nome: controlla l'esistenza del file
Stat: Path =./ospite.YML
Registro: fileexisti
delegate_to: localhost
Tag: check_file
- debug:
msg: "'file esiste' se fileexists.statistica.esiste altro "file non trovato" "
Tag: check_file
- Nome: controlla se host.YML è accessibile dall'utente corrente
Shell: Stat -c "%A" ./ospite.YML
Registro: AccessPath
delegate_to: localhost
Tag: check_access
- debug:
msg: "'file accessibile' if (accesspath.stdout | int) < 660 else 'File is not accessible' "
Tag: check_access
- Nome: Elimina la password dall'inventario
lineinfile:
Path: "inventory_file"
regexp: '\ b item.*\B'
Stato: assente
delegate_to: localhost
Diventa: falso
Tag: sempre
with_items:
- Ansible_Password

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

[root@master ansible]# nano host.YML

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

Tutto:
ospiti:
Linux_host:
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 dei luoghi di Ansible dove li applicheremo. Per aiutare lo studente a comprendere la comprensione del concetto di tag Ansible, abbiamo sviluppato una varietà di esempi.