Arbejde Med Svarbare Ad-hoc-kommandoer

Arbejde Med Svarbare Ad-hoc-kommandoer
Arbejde Med Svarbare Ad-hoc-kommandoer

Video: Arbejde Med Svarbare Ad-hoc-kommandoer

Video: Arbejde Med Svarbare Ad-hoc-kommandoer
Video: AD Hoc Arbitration 2023, September
Anonim

En af de store ting ved at bruge Ansible som dit valg af konfigurationsstyringsværktøj er dens fleksibilitet. Du er ikke bundet til nogen bestemt måde at gøre ting på, og med ad-hoc-kommandoer behøver du ikke oprette et detaljeret sæt opgaver bare for at udføre enkle handlinger på dine noder. Ad-hoc-kommandoer i Ansible giver dig mulighed for at udføre enkle opgaver på kommandolinjen mod en eller alle dine værter.

En ad-hoc-kommando består af to parametre; værtsgruppen, der definerer, hvilke maskiner der skal køre opgaven mod, og hvilket modul Ansible der skal køres. Disse parametre overføres til den ansvarsfulde binære til kald. Hvis du gerne vil køre ping-modulet mod alle maskiner, der er i serverværtsgruppen, ville følgende få det til at ske:

ansvarsfulde servere -m ping

Faktisk behøver vi ikke engang at bruge et Ansible-modul overhovedet. Vi kan endda specificere kommandoen, der skal køres på hver maskine lige ved selve CLI. For eksempel, hvis vi er nødt til at genstarte alle værter inde i serverens værtsgruppe, kunne vi starte en genstart-sekvens ved at kalde genstart binært direkte fra Ansible.

ansvarsfulde servere -a "/ sbin / reboot"

Bemærk denne gang bruger jeg parameteren -a. Dette indikerer, at jeg får en direkte kommando og ikke et modul. For et modul vil jeg bruge parameteren -m. Selvom vi ikke forvirrer dig, kan vi også bruge -a-parameteren med -m-parameteren som en måde at videregive forskellige argumenter til et modul. For eksempel, med yum-pakken, har vi brug for en måde at specificere navnet på den pakke, vi leder efter, og den er tilstand. Vi gør det ved at bruge begge parametre.

ansvarsfulde servere -m yum -a "name = foo state = present"

Ad-hoc-kommandoer i Ansible giver dig også mulighed for at køre kommandoer parallelt. Ved at bruge -f-kontakten og angive, hvor mange parallelle gafler der skal køres, kunne vi genstarte alle disse værter ti ad gangen.

ansvarsfulde servere -a "/ sbin / reboot" -f 10

Måske er du logget ind på konsollen som en anden bruger, du gerne vil udføre en kommando imod. Du skal på en eller anden måde fortælle Ansible at påkalde denne kommando som en alternativ bruger uden at skulle logge af konsollen og logge på igen som denne bruger. Det er muligt at køre ad-hoc-kommandoer som en alternativ bruger ved hjælp af parametrene -u, --become og --ask-be-pass. Disse to indstillinger tvinger kommandoen til at køre som denne bruger og interaktivt beder dig om den brugers adgangskode.

ansvarsfulde servere -a "/ sbin / reboot" -u differentuserhere --become --ask-be-pass

Som vores sidste eksempel i arbejde med ad-hoc-kommandoer, lad os tilføje en tidsbegrænset baggrundshandling. Dette er praktisk til de langvarige kommandoer, som du helst ikke vil binde din konsol op, så du kan gøre andre ting. Med Ansible kan vi påkalde opgaven i baggrunden og indstille en timeout for den for at sikre, at den ikke kører for evigt. Måske vil jeg gerne udføre et script på alle mine værter, sparke det i baggrunden og sørge for, at det ikke kører i mere end en time. Dette gøres ved brug af parametrene -B og -P.

ansvarsfuld alt -a "/ usr / bin / somescript" -B 3600-P 0

Anbefalet: