Ansible prøver på nytt

Ansible prøver på nytt

I denne artikkelen skal vi lære om en av de viktige oppgavene til Ansible, som er "Retry" -oppgaven som vi vil liste opp i spillboken for å utføre kommandoer. Vi vil lære hvordan Retry -oppgaven fungerer i Ansible.

Retry er en annen oppgave som brukes til å forsøke å utføre eventuelle problematiske spillbøker gjentatte ganger. Ansible utgangsterminalen vil vise feilene i den feilen. På grunn av dette er det noen ganger vanskelig å forstå disse problemene når vi prøver å fikse dem ved hjelp av Ansible. Imidlertid gir Ansible et "prøving" -alternativ som lar oss utføre kommandoen mer enn en gang.

Ta scenariet når vi har en oppgave i vår spillbok av "alle" verter, noen av vertene er målrettet på grunn av visse oppgaveforhold deres utførelse vellykket på første forsøk når spillboken er utført. Noen ganger vil de gjenværende vertene imidlertid lykkes med det andre forsøket på oppgaven. Nå er det forskjellige metoder der vi kan prøve å løse dette problemet, men noen ganger har vi kanskje ikke tid eller systemkontroll til å oppnå dette.

Å prøve på nytt i denne situasjonen kan være det enkleste og mest effektive handlingsforløpet. Playbooken blir deretter utført på nytt i en løpsfeilstat, og som standard vil den fortsette å prøve til den genererer ønsket resultat eller stopper rapporteringsfeil. Vi kan ikke påstå at alternativet Ansible Retry er en erstatning for standardsløyfen som utfører jobben gjentatte ganger til tilstanden er oppfylt. Dermed klarer vi ikke å bruke Ansible Retry for oppgaver som vi ikke har noen måte å forutsi eller estimere hvor lang tid de vil ta. Derfor kan dette umulig være en erstatning for standardsløyfen. Imidlertid unngår den det alvorlige problemet med en uendelig sløyfe ved å timere arbeidet etter et forhåndsbestemt antall forsøk.

Forutsetninger for å prøve på nytt oppgaver i Ansible

Praktiske eksempler på Ansible er gitt i denne økten. Vi antar at du alltid har hatt følgende forutsetninger hvis du har tenkt å følge med når du bruker alternativet Ansible Retry:

  • Før vi kan bruke Ansible-verktøyet og implementere alternativet Retry, krever vi Ansible-relaterte applikasjoner på systemet ditt. Denne opplæringen benytter seg av Ansible 2.12 eller en senere versjon.
  • På grunn av dette trenger vi en Ansible -kontroller for å kjøre kommandoene på eksterne verter og de eksterne vertene som vi ønsker å konsentrere oss om for implementeringer.

La oss bare gå gjennom alternativet på nytt i dybden og se på hvordan Ansible setter den i verk ved å bruke et eksempel.

Eksempel: På nytt oppgavene på nytt 5 ganger i Ansible Playbooks

Før jeg implementerer eksemplet, er en grundig forståelse av en rekke oppgaver som finnes i Ansible Configuration Tool et krav for enhver håpefull ansettelsesmester eller dyktig leverandør, for eksempel en Ansible Controller for å gjøre endringer i den eksterne vertsenheten. La oss ta scenariet der vi prøver å implementere alternativet på nytt. Her er eksemplet i Ansible som vi skal implementere for å utføre oppgavene til spillboken flere ganger.

For å begynne å implementere kommandoene, må vi først lage spillboken ved å bruke Ansible -verktøyet. Nedenfor er uttalelsen som vi vil kjøre for å lage spillboken i Ansible.

[root@master ansible]# nano prøver på nytt.yml

Etter å ha skrevet kommandoen ovenfor, forsøk på forsøk.YML Playbook vil bli opprettet og åpnet til en ny ansible terminal. I spillboken definerer vi alltid først implementeringen som vi skal implementere i "Navn" -parameteren. Deretter vil vi bruke parameteren "verter" slik at vi kan oppgi IP -adresse eller relatert informasjon fra den eksterne verten vi skal koble til. Vi vil bruke "localhost" som målsemåleserveren i dette eksemplet.

Ved å bruke den som "samlefakta" -komponenten, vil vi samle informasjon om den målrettede lokale verten. Disse dataene er ofte beskrevet som "fakta" eller "parametere" i Ansible -programvaren. Ved å bruke den spesielle kommandoen "Setup" i Ansible -programvaren, kan vi samle informasjonen til Localhost. Imidlertid kaller Ansible Playbooks generelt denne installasjonsparameteren som standard for å oppnå parameter for samlingsfakta. Vi vil enten gi verdien "sanne" eller "usant" for å samle inn dataene fra den lokale verten. Som vist nedenfor i spillboken, ønsker vi ikke å få målet LocalHost -informasjon, derfor ga vi en "falsk" verdi til GATER_FACT -parameteren.

Etter å ha erklært parametrene som vil være nødvendige for at spillboken skal konfigurere den lokale vertsenheten, vil vi liste opp oppgavene i spillboken som vi ønsker å implementere på den lokale vertsmaskinen. I oppgavelisten vil vi først oppgi navnet på oppgaven vi skal gjøre, det vil si at gyldigheten av filen er til stede eller ikke i LocalHost -maskinen. Vi bruker Ansible Shell -parameteren som utfører Shell -kommandoene på LocalHost -enheten.

I Ansible har skallparameteren en standardbane der /bin /sh utfører kommandoer, men i dette eksemplet har vi gitt “LS -LST /TMP /MyProcess.PID ”-banen der Ansible -kontrolleren gjorde endringene i LocalHost -enheten. Deretter, for å overvåke og lagre utdataene i denne ansible -parameteren, benyttet vi "Register" -parameteren.

Deretter brukte vi "til" -parameteren som brukes til å prøve på nytt spilloppgavene 5 ganger i 2 sekunder. For å definere intervallet har vi brukt standardparameteren til Ansible som er "forsinkelse" og antall ganger oppgavene til spillboken vil kjøre er i "Retry" -parameteren til Ansible.

Nå vil vi avslutte forsøkene.YML Playbook ved å treffe Ctrl+x. Nå vil vi kjøre spillboken. Så vi vil bruke kommandoen nedenfor:

[root@master ansible]# ansible-playbook prøver på nytt.yml

Vi får resultatet nedenfor etter å ha utført kommandoen ovenfor. Som vist i utdataene, utføres spillboken 5 ganger vellykket med en utførelsestid på 2 sekunder.

Konklusjon

Denne artikkelen har dekket hvordan Ansible Playbook's Retry -parameter fungerer. Vi har grundig mestret prøvetorien på nytt. For å bedre forstå begrepet forsøk på nytt, utfører vi et eksempel i praksis.