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.
- blive_metode : Dette indstiller metoden til optagelse af privilegier, f.eks. Su eller sudo.
- blive_brugerdirektiv : Dette angiver, at brugeren skal køre kommandoen som; dette indebærer ikke at blive: ja.
- 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-passDu kan også angive -K -flag, der udfører operationer, der ligner ovenstående kommando. For eksempel:
ansible-playbook bliver_pass.yml-TILNå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.