For at udføre en automatiseret opgave på en ekstern vært med Ansible er det nødvendigt at udfylde og arbejde med bestemte variabler, som forventet. For eksempel er denne type opgave nødvendig for at sætte en ekstern vært online, tillade login- og brugerrettigheder og oprette et Python-miljø.
Det er muligt at SSH ind i en ekstern vært og kontrollere, om værten opfylder alle kriterierne. Som et automatiseringsværktøj leverer Ansible dog moduler, der giver dig mulighed for at udføre disse kedelige, tidskrævende opgaver i en enkelt kommandolinje.
Denne vejledning viser dig, hvordan du bruger Ansible-indbyggede ping-modul til at udføre forskellige sætvariabler på fjernværter. Ansible ping-anmodningen er et simpelt, men nyttigt værktøj, som du kan bruge til at teste tilgængeligheden og anvendeligheden af fjernværter.
Vi vil nu se nærmere på, hvordan Ansible-ping fungerer.
BEMÆRK: Dette afsnit er noget teoretisk. Hvis alt hvad du behøver er den tekniske del af artiklen, kan du springe dette afsnit over. Alligevel anbefaler vi at læse dette afsnit, da det giver nogle nyttige indsigter og oplysninger om ping-modulet.
Med det bemærket fortsætter vi nu med at introducere ping-modulet.
Om Ansible ping-modulet
Ansible ping-anmodningen kontrollerer den eksterne vært. Dette modul kontrollerer specifikt for:
- Om fjernværten er oppe og tilgængelig.
- Om Python-miljøet med succes kan køre de krævede playbøger.
- Bruger login og privilegier.
Efter at en pinganmodning er sendt til den eksterne vært, returnerer modulet en værdi, der angiver, om pingen var vellykket. Som standard returnerer ping-modulet strengen 'pong' efter succes og en undtagelse ved fiasko (hvis specificeret).
PRO TIP: Brug ping-modulet til at kontrollere, om kravene er opfyldt, og udfør kun opgaverne, hvis der opnås en vellykket output for at sikre, at dine Ansible-playbøger på mål-fjernværterne ikke fejler.
Funktioner i Ansible ping-modulet
Ping-modulet er ret simpelt, og det følgende er en liste over funktionerne i dette modul:
- Ikke et ICMP-ping; snarere er det et lille modul, der kræver et gyldigt Python-miljø på fjernværter.
- Windows-værter skal bruge win_ping-modulet i stedet.
- Tilbyder et net_ping-modul til netværksenheder.
- Accepterer kun en enkelt parameter for at hæve en undtagelse.
- Bruges som standard, når du ringer til ansible-kommandoen i / usr / bin / ansible-biblioteket for at kontrollere logintilladelser og et gyldigt Python-miljø.
- Returnerer strengen 'pong' efter succes.
Sådan bruges Ansible ping-modulet
Vi vil nu se på et par eksempler, der bruger Ansible ping-modulet.
Brug af AD HOC ping-kommandoen
Den enkleste måde at køre Ansible ping-modulet er at køre en simpel AD HOC-kommando i terminalen.
AD HOC-kommandoen er som følger:
ansible alle -m ping -vOvenstående kommando starter med at ringe til Ansible efterfulgt af det specifikke mønster for værten. I dette tilfælde vil vi pinge 'alle' værter. Den næste del, '-m', specificerer det modul, vi vil bruge. '-V' står for detaljeret.
Efter succes får du en output som den, der er vist nedenfor:
Brug af / etc / ansible / ansible.cfg som konfigurationsfil 35.222.210.12| SUCCESS =>
"ansible_facts":
"discovery_interpreter_python": "/ usr / bin / python",
"ændret": falsk,
"bordtennis"
Hvis fjernværterne ikke er tilgængelige (måske er de offline), får du en output som den, der er vist nedenfor:
Brug af / etc / ansible / ansible.cfg som konfigurationsfil 35.222.210.12| UOPnåelig! =>
"ændret": falsk,
"msg": "Kunne ikke oprette forbindelse til værten via ssh: ssh: oprette forbindelse til vært 35.222.210.12 port 22: Forbindelse timeout ",
"utilgængelig": sandt
Brug af ping-modulet i Playbooks
Du kan også bruge ping-modulet inde i en playbook. I de fleste tilfælde bygger du ikke en playbook, der kun udfører en ping-anmodning. Du kan dog pakke alle opgaverne ind under betingelserne for ping-anmodningen.
Overvej følgende enkle playbook:
- værter: alleblive: ja
opgaver:
- ping
Du bemærker muligvis, at jeg i ovenstående playbook inkluderede 'blive' direktivet. Dette er ikke et krav, men jeg har stødt på tilfælde, hvor ping-modulet mislykkes for en standardbruger. Du kan nu køre playbook og kontrollere, om værtsserveren opfylder kravene til et vellykket 'pong'-svar.
ansible-playbook ping.ymlHvis pingen ikke lykkes, får du følgende 'uopnåelig' fejl:
dødelig: [35.222.210.12]: UOPnåelig! => "ændret": falsk, "msg": "Kunne ikke oprette forbindelse til værten via ssh: ssh: oprette forbindelse til vært 35.222.210.12 port 22: Forbindelse timeout "," unreachable ": trueBrug af hæveundtagelsen med ping-modulet
Du kan også angive data som et nedbrud for at fremkalde en undtagelse. Dette ændrer standardreturen fra 'pong' til 'crash.''
Overvej følgende playbook:
- værter: alleblive: ja
opgaver:
- ping:
nedbrud: data
At køre playbook med undtagelse skal returnere følgende værdi:
ansible-playbook ping_except.yml
Konklusion
Denne vejledning viste dig den forskellige anvendelighed af ping-modulet. Selvom dette modul ikke indeholder komplekse parametre som de fleste Ansible-moduler, indeholder det stadig effektive funktioner. For eksempel kan du bruge ping-modulet til at kontrollere, om en fejl skyldes et manglende Python-miljø og oprette en opgave til at installere det krævede miljø på den eksterne vært.