Ansible Devine Directiva pentru a rula comenzi ca utilizator specificat

Ansible Become Directive Run Commands



Folosind Ansible, puteți efectua diverse operații pe mașini la distanță folosind comenzi brute sau cărți de redare Ansible. În mod implicit, un playbook Ansible este executat pe gazda de la distanță ca același utilizator pe controlerul Ansible. Asta înseamnă că, dacă trebuie să executați o comandă ca alt utilizator pe aparatul de la distanță, va trebui să o specificați în mod explicit în cartea de joc Ansible.

Pentru a implementa funcționalitatea comenzilor care rulează ca alt utilizator, va trebui să utilizați caracteristica sudo disponibilă în sistemele Linux. Directiva Ansible devenită vă permite să executați comenzi ca utilizator specificat.







Informațiile utilizatorului sunt specificate într-un manual Ansible folosind variabilele devenite, cum ar fi devenit_pass, pentru a specifica parola utilizatorului devenit_utilizator, precum și ce utilizator poate rula comanda.



Cum se execută sarcini Ansible ca rădăcină

Pentru a rula o comandă specifică ca utilizator root în Ansible, puteți implementa directiva devenită și setați valoarea la „adevărat”. Acest lucru îi spune Ansible să implementeze sudo fără argumente atunci când rulați comanda.



De exemplu, luați în considerare un manual Ansible care actualizează pachetul MySQL-server și apoi îl repornește. În operațiile normale Linux, va trebui să vă conectați ca utilizator root pentru a efectua astfel de sarcini. În Ansible, puteți apela pur și simplu directiva devine: da, așa cum se arată mai jos:





- gazde: toate

deveni:da

sarcini:

- nume: Ansible runla fel derădăcină și actualizare sys

da:

nume: mysql-server

stare: ultima

- Nume:

service.service:
nume: mysqld

state: repornit

În manualul de mai sus, am folosit directiva devenită și nu am specificat utilizatorul devenit_utilizator, deoarece orice comandă din directiva devenită este rulată ca root în mod implicit.

Acest lucru este similar cu specificarea acestuia ca:



- gazde: toate

deveni:da

devenit_utilizator: rădăcină

sarcini:

- nume: Ansible runla fel derădăcină și actualizare sys

da:
nume: mysql-server

stare: ultima

- nume: service.service:

nume: mysqld

state: repornit

Cum se execută sarcini Ansible ca Sudo

Pentru a rula o sarcină Ansible ca utilizator specific, mai degrabă decât ca utilizator root normal, puteți utiliza directiva devenire_utilizator și puteți trece numele de utilizator al utilizatorului pentru a executa sarcina. Este ca și cum ați folosi comanda sudo -u în Unix.

Pentru a implementa directiva devenire_utilizator, trebuie să activați mai întâi directiva devine, deoarece devine_utilizator este inutilizabilă fără ca această directivă să fie activată.

Luați în considerare următoarea carte de joc, în care comanda este executată ca fiind utilizatorul nimănui.

- nume: Run acomanda la fel dealt utilizator(nimeni)
comanda:psde

deveni:Adevărat

devenit_metodă:este

devenit_utilizator: nimeni

devenite_flaguri:„-s / bin / bash”

În fragmentul de playbook de mai sus, am implementat directivele devenire, devenire_utilizator și alte directii devenite.

  1. devenit_metodă : Aceasta setează metoda de creștere a privilegiilor, cum ar fi su sau sudo.
  2. directivă devenit_utilizator : Aceasta specifică utilizatorul pentru a rula comanda ca; acest lucru nu implică să devină: da.
  3. devenite_flaguri : Aceasta setează semnalizatoarele care vor fi utilizate pentru sarcina specificată.

Acum puteți rula manualul de mai sus cu ansible-playbook filename.yml și puteți vedea singur rezultatul. Pentru activități cu o ieșire, poate fi necesar să implementați modulul de depanare.

Cum să rulați Ansible devine cu parolă

Pentru a rula o directivă devenită care necesită o parolă, puteți spune Ansible să solicite o parolă atunci când invocați playbook-ul specificat.

De exemplu, pentru a rula un playbook cu o parolă, introduceți comanda de mai jos:

ansible-playbook devine_pass.yml--sarcă-devine-trecere

De asemenea, puteți specifica steagul -K, care efectuează operațiuni similare cu comanda de mai sus. De exemplu:

ansible-playbook devine_pass.yml-LA

Odată specificat, vi se va solicita o parolă atunci când sarcinile se execută.

NOTĂ : Puteți utiliza, de asemenea, directiva devenită în comenzile brute Ansible AD HOC folosind steagul -b. Pentru a afla mai multe, consultați documentația furnizată mai jos:

https://linkfy.to/becomeDocumentation

Concluzie

După ce ați citit acest articol, ar trebui să știți acum cum să utilizați directiva Ansible BECOME pentru a efectua escaladarea de privilegii pentru diferite sarcini.

Din motive de securitate, este mai bine să implementați restricții pentru diferite conturi și să specificați în mod explicit când sunt utilizate. Deci, escaladarea privilegiilor este un aspect important al utilizării sudo și su în Ansible.