Ansible kommandomodul

Ansible kommandomodul
I visse tilfeller er det som kreves å bare kjøre instruksjoner på målets eksterne verter umiddelbart, på samme måte som du ville gjort på en ledetekst i Windows. Ansible Command -modulen er nyttig i dette scenariet. Du vil forstå Ansible Command -modulen i denne artikkelen, inkludert hvordan den fungerer og hvordan du kan bruke den til å levere instruksjoner til administrerte eksterne verter.

I Ansible, hvis vi ønsker å utstede noen kommandoer for å gjøre endringer eller oppdatere noe på Target Remote Host, vil vi bruke kommandomodulen. Ansible ad-hoc-modulen er standardmodulen når vi bruker "kommando" -modulen i Ansible-verktøyet. De eneste kjørbare filer som kommandomodulen kan kjøre, er de som er på mål for fjerne verter. Hovedmålet med kommandomodulen i Ansible er å omgå den lokale terminalen.

Det er noen begrensninger i Ansible, for eksempel er variabler som $ vertsnavn eller $ hjem ikke tilgjengelige og operasjoner som “&” og “<" etc are not functional in the command module. Any other Ansible module can be used if you wish to utilize these parameters. The command module in Ansible is unaffected by the remote host environment, which is why its outcomes are regarded as being more dependable and secure. On the target remote hosts or servers, that are specified as independent servers or hosting groups, the Command module is largely used to carry out standard Ubuntu instructions.

Forutsetninger for å bruke kommandomodulen i Ansible

Denne opplæringen inkluderer praktiske demonstrasjoner av Ansible. For å bruke Ansible Command -modulen, antar vi at du har kravene som er oppført nedenfor:

  • Vi trenger først ansible-relatert programvare på systemet ditt, slik at vi kan bruke Ansible-verktøyet før vi kan implementere kommandomodulen. Vi bruker Ansible 2.12 eller en senere versjon for opplæringen.
  • Som et resultat krever vi en Ansible -kontroller for å utføre kommandoene på eksterne verter og de eksterne vertene som vi ønsker å fokusere på for implementeringer.

La oss utforske kommandomodulforutsetningen mer detaljert og undersøke hvordan Ansible implementerer dette ved å kaste flere scenarier i praksis.

Eksempel 01: Kontrollere oppetid for en måls fjern vert ved å bruke kommandomodulen til Ansible

Hvert potensielt ansibel profesjonell eller mektig operatør, for eksempel en ansible kontroller, må ha en fast kunnskap om noen kommandoer som finnes i Ansible -konfigurasjonsverktøyet. Vi kommer til å bruke en av de viktigste kommandoene i kommandomodulen som er “Uptime” -kommandoen i Ansible. Kommandoen UpTime viser nåtiden, antall aktive verter, den typiske serverbelastningen over de forrige 1, 5 og 15 minutter, samt hvor lang tid enheten din har fungert. Etter valgene du spesifiserer, er det også i stand til å begrense det aktuelle innholdet samtidig.

La oss starte med å opprette spillboken der vi skal skrive kommandoen for oppetid for å bekrefte oppetid for den eksterne verten. Kommandoen vi bruker for å lage spillboken i Ansible -verktøyet er som følger:

[root@master ansible]# nano command_module.yml

Etter å ha skrevet kommandoen ovenfor, kommandoen_modul.YML Playbook vil bli opprettet og lansert i en ny redaktør på navnet på spillboken som er "Command_Module". I denne redaktøren gir vi først de eksterne vertene som vi vil målrette mot. Her har vi målrettet “alle” de eksterne vertene. For å skaffe informasjonen relatert til de målrettede eksterne vertene, vil vi bruke Ansible “Samle fakta” ​​-modul. Dataene som er samlet inn blir vanligvis referert til som "fakta" eller "variabler" i Ansible -verktøyet.

I Ansible -verktøyet kan vi samle dataene fra eksterne verter individuelt ved å bruke den spesifikke kommandoen som er "Oppsett". Men i virkeligheten utføres variabelen for samlingsfakta. For å samle dataene, vil vi passere den "sanne" eller "falske" verdien. Som vist har vi bestått "usant" fordi vi ikke ønsker å skaffe informasjonen til målverten.

Deretter vil vi liste opp oppgavene som vi ønsker å gjøre i Command_Module Playbook. Vi starter med å navngi oppgaven. Deretter brukte vi "Register" -parameteren slik at vi kan spore og lagre utdataene i denne Ansible -parameteren. Nå vil vi gi kommandoen vi ønsker å utføre som er "oppetid". Deretter brukte vi “Debug” -kommandoen for å skrive ut utgangen fra variabelen.

- verter:
- alle
Samle_facts: FALSE
oppgaver:
- Navn: Utfør oppetidskommandoen over kommandomodulen
Registrer deg: UPTimeOutput
Kommando: "Upetid"
- Debug:
var: UPTimeOutput.stdout_lines

Å treffe Ctrl+X vil avslutte Playbook -redaktøren. Nå oppretter vi varelagerfilen, som vil inneholde detaljene om Target Remote Host. Kommandoen vi vil bruke for å opprette varelagerfilen i Ansible er nevnt nedenfor:

[root@master ansible]# nano host.yml

En annen redaktør kalt "Vert" vil bli åpnet med varelagerfilen. Siden "alle" verter ble nevnt i spillboken, vil vi nå gå over hver vert individuelt. Vi bruker bare en vert i varelagerfilen, som vi vil referere til som "Host1", og vi vil inkludere detaljene der. Vi begynner med å oppgi IP -adresse, deretter vertens identitet, Ansible -verktøyets legitimasjon, navnet på forbindelsen som ble dannet mellom kontrolleren og verten, og til slutt portnummeret.

Alle:
verter:
Vert1:
Ansible_host: 192.168.3.229
Ansible_user: Ansible
Ansible_Password: *******
Ansible_Connection: SSH
Ansible_port: 22

Vi vil nå lansere Playbook og inventarfilen som begge ble opprettet etter å ha blitt skrevet til av kommandoen som er oppført nedenfor:

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

Her er utdataene etter å ha kjørt med suksess der vi har informasjonen til Host1. Vi har tid, dager, totale brukernes data og lastgjennomsnittet av vert1.

Eksempel 02: Bruke Uname -kommandoen for å skaffe vertsnavnet og versjonen av den eksterne verten

Her er det andre eksemplet på en kommandomodul i Ansible der vi skal bruke “Uname” -kommandoen. Vi bruker "Uname" for å få informasjonen fra den eksterne verten for Ansible som om vi ønsker å få navnet på den eksterne verten og hvilken versjon av Ansible Tool. Først skal vi gå inn i den nylig opprettede lekeboken som er kommando_modul.YML og modifiser deretter oppgavene og kommandoene. Å åpne kommandoen_modulen.YML Playbook, vi bruker “Nano” -kommandoen:

[root@master ansible]# nano command_module.yml

I spillboken har vi endret oppgavene som ble vist nedenfor i kodebiten. Som vist i kommandovariabelen, har vi bestått “Uname” -kommandoen sammen med “-A” -alternativet slik at vi kan få informasjonen til alle vertene.

- verter:
- alle
Samle_facts: FALSE
oppgaver:
- Navn: Utførelse av UNAME -instruksjonen
Register: Unameout
Kommando: "UNAME -A"
- Debug:
var: unameout.stdout_lines

Vi vil lagre modifikasjonene og lukke spillboken. Nå vil vi kjøre spillboken for å få output fra “Uname” -kommandoen og se hva vi får. For å utføre spillboken, nedenfor er kommandoen vi vil bruke:

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

Resultatet av å utføre den nevnte kommandoen med hell er vist nedenfor. Vertsnavnet og versjonen vises i grønn skrift.

Konklusjon

Vi har lært en av modulene til Ansible som er kommandomodulen. Vi har diskutert hvordan det fungerer i Ansible. Videre har vi lært de to grunnleggende scenariene i kommandomodulen ved å implementere eksemplene.