For å utføre en automatisert oppgave på en ekstern vert med Ansible, er det nødvendig å fylle og jobbe med visse variabler, som forventet. For eksempel er denne typen oppgaver nødvendig for å sette en ekstern vert online, tillate pålogging og brukerrettigheter, og sette opp et Python-miljø.
Det er mulig å SSH inn i en ekstern vert og sjekke om verten oppfyller alle kriteriene. Som et automatiseringsverktøy tilbyr Ansible imidlertid moduler som lar deg utføre disse kjedelige, tidkrevende oppgavene i en enkelt kommandolinje.
Denne opplæringen viser deg hvordan du bruker den innebygde ping-modulen Ansible til å utføre forskjellige settvariabler på eksterne verter. Ansible ping-forespørselen er et enkelt, men nyttig verktøy som du kan bruke til å teste tilgjengeligheten og anvendeligheten til eksterne verter.
Vi vil nå se nærmere på hvordan Ansible-ping fungerer.
MERK: Denne delen er noe teoretisk. Hvis alt du trenger er den tekniske delen av artikkelen, kan du hoppe over denne delen. Likevel anbefaler vi å lese denne delen, da den gir nyttig innsikt og informasjon om ping-modulen.
Med det som er nevnt, vil vi nå gå videre til å introdusere ping-modulen.
Om Ansible ping-modulen
Ansible ping-forespørselen sjekker opp den eksterne verten. Denne modulen ser spesielt etter:
- Om den eksterne verten er oppe og tilgjengelig.
- Om Python-miljøet kan kjøre de nødvendige spillbøkene.
- Brukerinnloggingen og privilegiene.
Etter at en pingforespørsel er sendt til den eksterne verten, returnerer modulen en verdi som indikerer om pingen var vellykket. Som standard returnerer ping-modulen strengen 'pong' etter suksess, og et unntak ved feil (hvis spesifisert).
PRO-TIPS: For å sikre at dine Ansible-spillbøker på målvertene ikke mislykkes, bruk ping-modulen for å sjekke om kravene er oppfylt, og bare utfør oppgavene hvis det oppnås en vellykket utdata.
Funksjoner i Ansible ping-modulen
Ping-modulen er ganske enkel, og det følgende er en liste over funksjonene som tilbys av denne modulen:
- Ikke et ICMP-ping; snarere er det en liten modul som krever et gyldig Python-miljø på eksterne verter.
- Windows-eksterne verter bør bruke win_ping-modulen i stedet.
- Tilbyr en net_ping-modul for nettverksenheter.
- Godtar bare en enkelt parameter for å heve et unntak.
- Brukes som standard når du ringer til ansible-kommandoen i / usr / bin / ansible-katalogen for å verifisere innloggingstillatelser og et gyldig Python-miljø.
- Returnerer strengen 'pong' etter suksess.
Hvordan bruke Ansible ping-modulen
Vi vil nå se på noen få eksempler som bruker Ansible ping-modulen.
Bruke AD HOC ping-kommandoen
Den enkleste måten å kjøre Ansible ping-modulen på er å kjøre en enkel AD HOC-kommando i terminalen.
AD HOC-kommandoen er som følger:
ansible all -m ping -vOvennevnte kommando starter med å ringe Ansible, etterfulgt av det spesifikke mønsteret til verten. I dette tilfellet ønsker vi å pinge 'alle' verter. Den neste delen, '-m', spesifiserer modulen vi vil bruke. '-V' står for verbose.
Når du lykkes, får du en produksjon som den som vises nedenfor:
Bruker / etc / ansible / ansible.cfg som konfigurasjonsfil 35.222.210.12| SUKSESS =>
"ansible_facts":
"discovery_interpreter_python": "/ usr / bin / python",
"endret": falsk,
"bordtennis"
Hvis de eksterne vertene ikke er tilgjengelige (kanskje de er frakoblet), vil du få en utdata som den som er vist nedenfor:
Bruker / etc / ansible / ansible.cfg som konfigurasjonsfil 35.222.210.12| Uoppnåelig! =>
"endret": falsk,
"msg": "Kunne ikke koble til verten via ssh: ssh: koble til vert 35.222.210.12 port 22: Tidsavbrudd for tilkobling ",
"utilgjengelig": sant
Bruke ping-modulen i Playbooks
Du kan også bruke ping-modulen i en spillbok. I de fleste tilfeller vil du ikke lage en spillbok som bare utfører en ping-forespørsel. Du kan imidlertid pakke alle oppgavene inn i forholdene til pingforespørselen.
Tenk på følgende enkle spillbok:
- verter: allebli: ja
oppgaver:
- ping
Du vil kanskje legge merke til at i spillboken ovenfor inkluderte jeg "bli" -direktivet. Dette er ikke et krav, men jeg har opplevd tilfeller der ping-modulen mislykkes for en standardbruker. Du kan nå kjøre spillboken og sjekke om vertsserveren oppfyller kravene for et vellykket "pong" -svar.
ansible-playbook ping.ymlHvis ping mislykkes, får du følgende 'utilgjengelige' feil:
dødelig: [35.222.210.12]: Uoppnåelig! => "changed": false, "msg": "Kunne ikke koble til verten via ssh: ssh: koble til vert 35.222.210.12 port 22: Tidsavbrudd for tilkobling "," unreachable ": trueBruke høye unntaket med ping-modulen
Du kan også spesifisere data som krasj for å indusere et unntak. Dette endrer standard retur fra 'pong' til 'krasj.'
Tenk på følgende spillbok:
- verter: allebli: ja
oppgaver:
- ping:
krasj: data
Å kjøre spillboken med unntak skal gi følgende verdi:
ansible-playbook ping_except.yml
Konklusjon
Denne opplæringen viste deg det mangfoldige verktøyet til ping-modulen. Selv om denne modulen ikke inneholder komplekse parametere som de fleste Ansible-moduler, inneholder den fremdeles kraftige funksjoner. For eksempel kan du bruke ping-modulen til å sjekke om en feil skyldes et manglende Python-miljø og opprette en oppgave for å installere det nødvendige miljøet på den eksterne verten.