Ekstern kodeutførelse ved hjelp av Ansible Command Module

Ekstern kodeutførelse ved hjelp av Ansible Command Module
For de av dere som jobber innen IT og nettverk, må det å jobbe med servere være en del av din daglige rutine.

Konfigurere forskjellige servere og applikasjoner manuelt kan være ganske problemer hvis det er mange systemer. Heldigvis får automatiseringsprogramvare og rammer jobben gjort mye lettere.

Ved å bruke disse applikasjonene kan du automatisere styrings- og konfigurasjonsprosessen ved å bruke bare noen få kodelinjer. Når det gjelder den automatisering av noe slag, gjør Ansible susen!

Ansible er et verktøy med en mengde funksjoner. Å snakke om dem alle i en enkelt guide ville være urettferdig, ettersom hver av disse funksjonene fortjener en guide.

Denne guiden er en detaljert opplæring i Ansible -kommandomodulen. Vi vil gå over det grunnleggende i modulen, sammen med syntaks og funksjoner, ved hjelp av noen eksempler.

Hva er Ansible -kommandomodulen?

Som navnet antyder, gjør kommandomodulen det mulig for en ekstern server/vert å kunne kjøre forskjellige kommandoer. Disse eksterne brukerne blir referert til som noder i et nettverk.

Ansible Command -modulen lar deg kjøre flere kommandoer på disse nodene. Disse nodene kan eksistere som uavhengige servere eller deler av en gruppe. Når det er sagt, er det noen begrensninger du bør vite om.

Begrensninger i kommandomodulen

Kommandomodulen kan brukes til å kjøre enkle baseline -kommandoer for skallet. Den eneste begrensningen er at den ikke kan brukes til å utføre mer komplekse kommandoer.

Ansible -kommandomodulen kan ikke utføre flere kommandoer i en enkelt uttalelse. Kommandoer ved hjelp av symbolene, | osv., er ikke kompatible med kommandomodulen. I slike tilfeller er skallmodulen definitivt et bedre valg.

Ansible -kommandomodulen har noen krav som må oppfylles før du kan bruke den. Disse kravene dekkes i neste del av denne guiden.

Forutsetninger for Ansible Command -modulen

For å bruke Ansible Command -modulen, krever du følgende:

  • Et system som har installert Ansible.
  • Et par verter. I tilfelle du tester serverne dine, anbefaler vi å bruke virtuelle maskiner. Programvare som Oracle VirtualBox, Vagrant og VMware -arbeidsstasjoner er perfekte for jobben.

Vi vil også anbefale at du har noen grunnleggende kunnskaper om hvordan du utfører kommandoer i terminalen for å sikre at du vet hva du gjør.

Når forutsetningene er oppfylt, kan vi fortsette å lære hvordan du bruker Ansible -kommandomodulen.

Bruke Ansible Command -modulen

Hvis du har noen tidligere erfaring med å jobbe med skallskript, bør bruk av Ansible Command -modulen være en tur i parken. I tilfelle du ikke har gjort det, må du ikke bekymre deg, da vi vil veilede deg om hvordan du bruker kommandomodulen ved hjelp av forskjellige eksempler.

Det første du må gjøre er å opprette en "Ansible_hosts" -fil. Denne filen lar deg gruppere vertene dine, noe som vil være nyttig for å utføre kommandoer.

For å opprette en gruppe verter, skriv inn følgende i filen “Ansible_hosts”

$ Ansible Testservers -List -i Ansible_hosts
verter (2):

I vårt tilfelle,

$ Ansible Testservers -List -i Ansible_hosts
verter (2):
VM1
VM2

Disse vertene skal nå grupperes sammen under aliaset "Testserverere.”La oss bruke denne filen som noen eksempler.

Bruker kommandomodulen for å finne verts runtime

I dette eksemplet bruker vi Ansible Command -modulen for å finne ut hvor lenge vertene våre har kjørt.

Dette kan gjøres på to måter. Den første bruker ad-hoc, en rask måte å utføre funksjoner via en enkelt kommando. Det andre er ved å skrive et manus i spillboken.

For å finne runtime ved hjelp av ad-hoc, bruk følgende kommando:

$ ansible testserver -m -kommando -en oppetid -i ansible_hosts

Dette skal gi deg utgangen i følgende syntaks:

| Endret | RC = 0 >>

For å utføre kommandoen som en spillbok, skriv inn følgende:

For å utføre kommandoen som en spillbok, skriv inn følgende:
- Navn:
verter:
oppgaver:
- Navn:
Registrer deg: UPTimeOutput
Kommando: "Upetid"
- Debug:
var: UPTimeOutput.stdout_lines

I vårt tilfelle skal manuset se ut som følger:

- Navn: Finn hvor lenge vertene har kjørt.
Verter: Testservere
oppgaver:
- Navn: Kommando for å finne oppetid ved hjelp av kommandomodulen
Registrer deg: UPTimeOutput
Kommando: "Upetid"
- Debug:
var: UPTimeOutput.stdout_lines

Med det kan du kjøre denne spillboken ved å utføre følgende kommando inn i Linux -terminalen:

Ansible-Playbook Testbook.yml

Utgangen skal være lik den for ad-hoc-kommandoen.

Bruker kommandomodulen for å finne diskbruk

Kommandoen $ df -h brukes til å finne ut diskbruken på et system. Den samme kommandoen kan integreres med Ansible Command Module for å finne vertenes diskbruk.

For å finne diskbruken ved hjelp av ad-hoc, bruk denne kommandoen:

$ ansible testserver -m -kommando -a "df -h" -i ansible_hosts

For å finne diskbruken ved hjelp av Playbook, kjør følgende skript:

Navn: servere diskbruk
Verter: Testservere
oppgaver:
- Navn: Utfør $ df -h -kommandoen.
Register: DFOUT
Kommando: "df -h"
- Debug:
var: dfout.stdout_lines

Bruker kommandomodulen for å starte serveren på nytt

Ansible Command -modulen kan brukes til å starte en enkelt server på nytt. PARAMETEREN -LIMIT brukes til å begrense denne utførelsen.

For å utføre kommandoen ved hjelp av ad-hoc, skriv inn følgende,

$ ANSIBLE TESTSERVERS -M COMMAND -A

For å utføre kommandoen ved hjelp av spillboken, kjør følgende skript:

---
- Navn: Start webserveren på nytt
Verter: Testservere
oppgaver:
- Navn: RestartWebServer
Register: httpdresout
Bli: Ja
Kommando: "Httpd -k omstart"
Når: Ansible_HostName == "VM1"
- Debug:
var: httpdresout.stdout_lines

Dette skal starte serveren på nytt. Det skal være tydelig at VM2 er blitt hoppet over.

Bortsett fra eksemplene som nevnt ovenfor, er det mange kommandoer som kan utføres ved hjelp av Ansible Command -modulen. Dokumentasjon av disse kommandoene og alternativene finner du på den offisielle Ansible Documentation Online.

Konklusjon

Vi håper denne guiden hjalp deg med å lære om Ansible -kommandomodulen. Vi dekket modulens grunnleggende, forutsetninger og noen eksempler på hvordan du bruker den. Med dette håper vi at du har en hyggelig opplevelse som jobber med Ansible.