Ansible blive direktiv for at køre kommandoer som specificeret bruger

Ansible Become Directive Run Commands



Ved hjælp af Ansible kan du udføre forskellige operationer på eksterne maskiner ved hjælp af rå kommandoer eller Ansible playbøger. Som standard udføres en Ansible playbook på den eksterne host som den samme bruger på Ansible -controlleren. Det betyder, at hvis du skal køre en kommando som en anden bruger på den eksterne maskine, skal du angive det eksplicit i din Ansible playbook.

For at implementere funktionaliteten ved at køre kommandoer som en anden bruger, skal du bruge sudo -funktionen, der er tilgængelig i Linux -systemer. Ansible blive -direktivet giver dig mulighed for at køre kommandoer som den angivne bruger.







Brugerens oplysninger er angivet i en Ansible playbook ved hjælp af bliver -variablerne, f.eks. Bliver_pass, til at angive adgangskoden for brugeren blive_bruger, samt hvilken bruger der kan køre kommandoen.



Sådan køres ansvarlige opgaver som rod

For at køre en bestemt kommando som rodbruger i Ansible kan du implementere direktivet til blive og indstille værdien til 'sand'. Hvis du gør dette, fortæller Ansible at implementere sudo uden argumenter, når du kører kommandoen.



Overvej f.eks. En Ansible playbook, der opdaterer MySQL-serverpakken og derefter genstarter den. Ved normale Linux -operationer skal du logge ind som root -bruger for at udføre sådanne opgaver. I Ansible kan du ganske enkelt kalde direktivet for blive: ja, som vist herunder:





- værter: alle

blive:Ja

opgaver:

- navn: Ansible runsomroot og opdater sys

nam:

navn: mysql-server

tilstand: seneste

- navn:

service.service:
navn: mysqld

tilstand: genstartet

I ovenstående playbog brugte vi direktivet til blive og angav ikke brugeren blive_bruger, da alle kommandoer under det bliver direktivet som standard køres som root.

Dette svarer til at specificere det som:



- værter: alle

blive:Ja

bliver_bruger: root

opgaver:

- navn: Ansible runsomroot og opdater sys

nam:
navn: mysql-server

tilstand: seneste

- navn: service.service:

navn: mysqld

tilstand: genstartet

Sådan køres ansvarlige opgaver som Sudo

For at køre en Ansible -opgave som en bestemt bruger i stedet for den normale rodbruger kan du bruge direktivet blive_user og videregive brugerens brugernavn til at udføre opgaven. Dette er ganske som at bruge kommandoen sudo -u i Unix.

For at implementere direktivet blive_bruger skal du først aktivere det blive -direktivet, da bliver_brugeren er ubrugelig uden dette direktiv er aktiveret.

Overvej følgende playbook, hvor kommandoen køres som ingen -bruger.

- navn: Kør akommando somen anden bruger(ingen)
kommando:psaf

blive:sand

blive_metode:dens

blive_bruger: ingen

bliver_flags:'-s /bin /bash'

I ovennævnte playbook -uddrag implementerede vi direktivene om blive, blive_bruger og andre blive til.

  1. blive_metode : Dette indstiller metoden til optagelse af privilegier, f.eks. Su eller sudo.
  2. blive_brugerdirektiv : Dette angiver, at brugeren skal køre kommandoen som; dette indebærer ikke at blive: ja.
  3. blive_flag : Dette indstiller flagene, der skal bruges til den angivne opgave.

Du kan nu køre ovenstående playbook med ansible-playbook filename.yml og selv se resultatet. For opgaver med et output skal du muligvis implementere fejlfindingsmodulet.

Sådan køres Ansible bliver med adgangskode

For at køre et blive -direktiv, der kræver en adgangskode, kan du fortælle Ansible at bede om et kodeord, når du påberåber den angivne afspilningsbog.

For eksempel, for at køre en playbook med et kodeord, skal du indtaste kommandoen herunder:

ansible-playbook bliver_pass.yml-spørge-blive-pass

Du kan også angive -K -flag, der udfører operationer, der ligner ovenstående kommando. For eksempel:

ansible-playbook bliver_pass.yml-TIL

Når det er angivet, bliver du bedt om et kodeord, når opgaverne udføres.

BEMÆRK : Du kan også bruge blive -direktivet i Ansible AD HOC rå kommandoer ved hjælp af -b -flag. For at lære mere, tjek dokumentationen herunder:

https://linkfy.to/becomeDocumentation

Konklusion

Efter at have læst denne artikel, skulle du nu vide, hvordan du bruger Ansible BECOME -direktivet til at udføre eskalering af privilegier til forskellige opgaver.

Af sikkerhedsmæssige årsager er det bedre at implementere begrænsninger for forskellige konti og eksplicit angive, hvornår de bruges. Så eskalering af privilegier er et vigtigt aspekt ved brug af sudo og su i Ansible.