Hvordan gjøre en if-uttalelse i jinja2

Hvordan gjøre en if-uttalelse i jinja2
Ulike forhåndskonstruerte betingelser i Jinja2 gir rask tilgang til avanserte metoder på Jinja-dokumenter. Hensikten med å implementere Jinja2 -betingelsene i Ansible blir forklart i denne artikkelen, sammen med hva de er generelt. Denne artikkelen har også en detaljert IF-uttalelse for en av Jinja2-betingelsene og hva Jinja2-dokumentet IF-statement Syntaks og funksjonalitet er. Vi vil også gå over en annen operatør som de vanlige programmererne kan bruke til å utføre IF-uttalelser.

Blant de mest effektive og velkjente Python-baserte dokumentene er Jinja2. Siden dette bruker de samme kodingsspråkene som Ansible, er det mest brukt av Ansible -brukere. Dette er en av fordelene for IT -fagfolk på utallige måter. Jinja2 -dokumentet kan bruke de vanlige betingede strukturene. Hver gang en boolsk tilstand som leveres av utvikleren oversettes til enten ekte eller usant, blir distinkte operasjoner eller aktiviteter utført ved betingede uttalelser. Inne. Det grunnleggende strukturelementet som brukes til å vurdere forholdene er "IF" -uttrykket. Når du evaluerer flere forhold, brukes "hvis" -uttrykket ofte under kombinasjon med både "elif" og "else" -kommandoer. Hvis en parameter oppstår og ikke er null eller hvis parameteren har det boolske uttrykket som "sann", oversettes en betinget if-statement med en inngangsparameter til sann. I enklere forklaring brukes "hvis" -uttrykket for å begrense utførelsen av en samling av uttalelser to ganger når en bestemt tilstand er oppfylt.

Syntaks av "hvis" tilstand i jinja2

Til tross for at Jinja2 ikke er et programmeringsspråk, har en liste over setninger som du må bruke for å sette "skriptet" i Ansible Playbook. Disse blir ganske enkelt kollektivt referert til som syntaks, og de er strukturert av en serie grunnleggende prinsipper som lar brukerne kommunisere sine mål til maskinen i de vilkårene som den kan forstå.

Vi starter med å bruke en krøllete åpen stag med en prosentvis indikator. "Hvis" nøkkelord, et reservert ord i jinja2, brukes. Etter å ha skrevet noen forhold eller uttrykk, lukker vi if-statuslinjen igjen med prosentsymbolet og lukker krøllete stag. Da, i neste linje, er "hvis" tilstandens kropp skrevet. Endelig er tilstanden lukket ved å skrive "endif" i IF-Statements åpnings- og lukkekoder. Hvis den spesifiserte tilstanden returnerer sann, blir uttalelsene som er inkludert i "IF" -blokken til koden utført. Hvis tilstanden er falsk, returnerer den falsk.

% if (tilstand) %
Kropp
% slutt om %

Forutsetninger for å bruke if-statementet i Jinja2

For raskt å konfigurere Jinja2 if-uttalelse i Ansible, vurderer vi, for denne økten, at vi overholder følgende kriterier:

  • For å utføre oppgavene i Ansible, bør vi først sette opp Ansible -verktøyet på systemet.
  • Jinja2 If-uttalelsen hele operasjonen håndteres av Ansible-kontrolleren i denne økten, som fungerer som den primære domenekontrolleren som setter opp og vedlikeholder Jinja2-betingelsene på den målrettede maskinen.
  • I tillegg er en målrettingsserver nødvendig der Jinja2 if-tatement er konfigurert. Den eksterne serveren i dette tilfellet er bestemt å være den lokale verten.

La oss begynne med en rask øving av Jinja2 if-tatement fra Ansible Playbook.

Eksempel: Implementering av IF-uttalelsen

Nå, ved å bruke IF-uttalelsen av Jinja, som er basert på Python-programmering, lager vi det grunnleggende eksemplet i Ansible. Vi trenger en spillbok for å inkludere alle kommandoene, oppgavene og Jinja2 -betingelsene som vi trenger å implementere i Ansible. Ansible Terminal -kommandoen som vi bruker for å konstruere Playbook vises i følgende:

[root@master ansible]# nano ansible_if.yml

Etter å ha kommet inn i den nevnte kommandoen, en spillbok med ".YML ”utvidelse og“ hvis.yml ”identifikator Ansible produseres og lanseres øyeblikkelig i en ny fane i Ansible Tool -grensesnittet. Nå som den betingede IF-uttalelsen er implementert, la oss begynne å lage de nødvendige kommandoene. For å implementere IF-statementet i den eksterne vertsenheten, spesifiserer vi først Target Remote Host i spillboken. Vi gir den lokale verten gjennom denne situasjonen. Innsamling av informasjon i Ansible -alternativet brukes for å motta dataene om den lokale verten. Så hvis den sanne boolske verdien blir gitt til alternativet, innhenter vi all informasjon som er relevant for den lokale verten. Vi gir imidlertid en falsk boolsk verdi hvis alt som vises i utgangsterminalen er navnet på den eksterne verten og ikke annen informasjon om den lokale verten når spillboken blir utført. Etter å ha gitt relevant informasjon til den lokale verten, definerer vi deretter operasjonene vi liker å utføre i IF-Tatement Playbook.

Først definerer vi oppgaven vi ønsker å sjekke tilgjengeligheten til dokumentet i Ansible. Deretter passerer vi banen til dokumentet og registrerer det. Deretter utfører vi og skriver ut resultatene ved å bruke feilsøkingsalternativet. Deretter bruker vi IF-uttalelsen for å sjekke om filen er tilgjengelig eller ikke. I neste oppgave sjekker vi om “verten.yml ”er tilgjengelig med den nåværende Ansible -kontrolleren eller ikke. Så vi bruker Shell -alternativet for å erklære veien for “verten.YML ”-dokumenter gjennom registervariabelen der vi gir tilgangen til“ verten.YML ”-dokument. Deretter bruker vi IF-uttalelsen for å sjekke "IF" -tilstanden.

- verter:
- lokal vert
Samle_facts: FALSE
oppgaver:
- Navn: Sjekk eksistensen
stat: bane =./vert.yml
Register: Fileexists
- Debug:
msg: "'fil eksisterer' hvis fileexists.stat.eksisterer "
- Navn: Sjekk om verten.YML er tilgjengelig av nåværende bruker
Shell: Stat -C "%A" ./vert.yml
Register: AccessPath
- Debug:
MSG: "'Fil tilgjengelig' if (AccessPath.stdout | int) < 660"

Deretter utfører vi spillboken i Ansible. Vi skriver følgende kommando for å få de ønskede resultatene:

[root@master ansible]# ansible-playbook ansible_if.yml -i vert.yml

Som du ser utføres den betingede IF-staten. I den første oppgaven, "verten.YML ”-dokument eksisterer i Ansible, og vi fikk tilgang til“ Verten.yml ”-fil.

Konklusjon

Vi brukte en av betingelsene til Jinja2 i Ansible, som er if-statement. Vi diskuterte skrivestilen til IF-uttalelsen i Jinja2 og lærte kravene som må konfigureres i kontrollverten og eksterne vertsenheter. Vi implementerte et eksempel på Jinja2 If-uttalelsen i Ansible, slik at vi enkelt kan konfigurere uttalelsen.