Tra i documenti più efficaci e noti a base di Python c'è Jinja2. Poiché questo utilizza gli stessi linguaggi di codifica di Ansible, è ampiamente utilizzato dagli utenti Ansible. Questo è uno dei vantaggi per i professionisti IT in innumerevoli modi. Il documento Jinja2 può impiegare le strutture condizionali Ansible. Ogni volta che una condizione booleana fornita dallo sviluppatore si traduce in operazioni o attività vere o false e distinte vengono svolte da dichiarazioni condizionali. All'interno di un playbook Ansible, in base alle informazioni sul server di destinazione, a una posizione if o al risultato di un'azione precedente, potresti voler eseguire alcune azioni alternative o avere obiettivi diversi. L'elemento di struttura fondamentale che viene utilizzato per valutare le condizioni è l'espressione "if". Quando si valutano più condizioni, l'espressione "if" viene frequentemente utilizzata durante la combinazione con i comandi "Elif" e "Else". Se si verifica un parametro e non è nullo o se il parametro ha l'espressione booleana come "vera", uno stato if condizionale con un parametro di input si traduce in true. In una spiegazione più semplice, l'espressione "if" viene utilizzata per limitare l'esecuzione di una raccolta di dichiarazioni due volte quando viene soddisfatta una particolare condizione.
Sintassi della condizione "if" in jinja2
Jinja2, nonostante non sia un linguaggio di programmazione, ha un elenco di frasi che devi impiegare per mettere la "sceneggiatura" nel playbook Ansible. Questi sono semplicemente collettivamente indicati come sintassi e sono strutturati da una serie di principi di base che consente agli utenti di comunicare i loro obiettivi alla macchina nei termini che può capire.
Iniziamo utilizzando un tutore aperto riccio con un indicatore percentuale. Viene utilizzata la parola chiave "if", una parola riservata in jinja2. Dopo aver scritto eventuali condizioni o espressioni, chiudiamo ancora una volta la linea IF-Statement con il simbolo percentuale e chiudiamo il tutore riccio. Quindi, nella riga successiva, il corpo della condizione "if" è scritto. Infine, la condizione è chiusa scrivendo "ENDIF" all'interno dei tag di apertura e chiusura di If-Statement. Se la condizione specificata restituisce true, vengono eseguite le istruzioni incluse nel blocco "if" del codice. Se la condizione è falsa, restituisce falso.
% if (condizione) %Prerequisiti di utilizzo dell'IF-Statement in Jinja2
Per configurare rapidamente il Jinja2 If-Statement in Ansible, consideriamo, per il bene di questa sessione, che rispettiamo i seguenti criteri:
Cominciamo con una rapida pratica di pratica del Jinja2 If-Statement dal Playbook Ansible.
Esempio: implementazione dell'IF-Statement
Ora, usando l'IF-Statement di Jinja, che si basa sulla programmazione di Python, creiamo l'esempio di base in Ansible. Abbiamo bisogno di un playbook per includere tutti i comandi, le attività e i condizionali Jinja2 che dobbiamo implementare in Ansible. Il comando del terminale Ansible che utilizziamo per costruire il playbook è mostrato nel seguente:
[root@master ansible]# nano ansible_if.YMLDopo aver inserito il comando di cui sopra, un playbook con ".estensione YML "e" if.L'identificatore YML ”Ansible viene prodotto e lanciato istantaneamente in una nuova scheda dell'interfaccia degli strumenti Ansible. Ora che è implementato il Condizionale If Statement, iniziamo a creare i comandi necessari. Per implementare il dispositivo host IF nel dispositivo host remoto, specifichiamo innanzitutto l'host remoto target nel playbook. Forniamo l'ospite locale in questa situazione. La raccolta di informazioni nell'opzione Ansible viene impiegata per ricevere i dati sull'host locale. Pertanto, se il vero valore booleano viene passato all'opzione, otteniamo tutte le informazioni rilevanti per l'host locale. Tuttavia, forniamo un falso valore booleano se tutto ciò che appare nel terminale di output è il nome dell'host remoto e non altre informazioni sull'host locale quando il playbook viene eseguito. Dopo aver fornito le informazioni pertinenti all'host locale, definiamo quindi le operazioni che ci piace realizzare nel playbook if-statement.
Innanzitutto, definiamo l'attività in cui vogliamo controllare la disponibilità del documento in Ansible. Quindi, passiamo il percorso del documento e lo registriamo. Successivamente, eseguiamo e stampiamo i risultati utilizzando l'opzione Debug. Quindi, utilizziamo l'IF-Statement per verificare se il file è disponibile o meno. Nel prossimo compito, controlliamo se l'host.YML ”è accessibile dal controller ANSIBILE corrente o no. Quindi, utilizziamo l'opzione shell per dichiarare il percorso dell'host.YML ”documento ANS tramite la variabile del registro in cui passiamo l'accesso al“ host.Documento YML ". Quindi, utilizziamo l'IF-Statement per controllare la condizione "if".
- ospiti:Quindi, eseguiamo il playbook in Ansible. Scriviamo il seguente comando per ottenere i risultati desiderati:
[root@master ansible]# ansible-playbook ansible_if.yml -i host.YMLCome puoi vedere, la sezione If Condizionale viene eseguita correttamente. Nel primo compito, l'host.Il documento YML "esiste in Ansible e abbiamo accettato con successo" host.File YML ".
Conclusione
Abbiamo usato uno dei condizionali di Jinja2 in Ansible che è la sezione if. Abbiamo discusso dello stile di scrittura dello stato if in jinja2 e abbiamo appreso i requisiti che devono essere configurati nell'host di controllo e nei dispositivi host remoti. Abbiamo implementato un esempio di Jinja2 If-Statement in Ansible in modo da poter facilmente configurare l'istruzione.