Come fare una sezione if in jinja2

Come fare una sezione if in jinja2
Vari condizioni pre-costruite in Jinja2 forniscono un rapido accesso ai metodi avanzati sui documenti Jinja. Lo scopo di attuare i condizionali Jinja2 in Ansible è spiegato in questo articolo, insieme a quello che sono in generale. Questo articolo ha anche una dichiarazione IF dettagliata per uno dei condizionali Jinja2 e ciò che il documento Jinja2 è la sintassi e la funzionalità. Esamineremo anche un altro operatore che i programmatori Ansible possono utilizzare per eseguire i settori if.

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) %
Corpo
% finisci se %

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:

  • Per eseguire le attività in Ansible, dovremmo prima impostare lo strumento Ansible sul sistema.
  • L'intera operazione di Jinja2 If-Statement è gestita dal controller Ansible in questa sessione, che funge da controller di dominio principale che imposta e mantiene i condizionali Jinja2 sulla macchina mirata.
  • Inoltre, è necessario un server di destinazione in cui è configurato Jinja2 IF-Statement. Il server remoto in questa istanza è determinato per essere l'host locale.

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.YML

Dopo 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:
- Localhost
Gather_Facts: false
compiti:
- Nome: controlla l'esistenza del file
Stat: Path =./ospite.YML
Registro: fileexisti
- debug:
msg: "'file esiste' se fileexists.statistica.esiste "
- Nome: controlla se host.YML è accessibile dall'utente corrente
Shell: Stat -c "%A" ./ospite.YML
Registro: AccessPath
- debug:
msg: "'file accessibile' if (accesspath.stdout | int) < 660"

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.YML

Come 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.