Z uporabo programa Ansible lahko izvajate različne operacije na oddaljenih računalnikih s pomočjo surovih ukazov ali knjig za igranje Ansible. Predvajalnik Ansible se privzeto izvede na oddaljenem gostitelju kot isti uporabnik na krmilniku Ansible. To pomeni, da boste morali, če želite ukaz zagnati kot drug uporabnik na oddaljeni napravi, to izrecno navesti v svoji knjigi Ansible.
Če želite uporabiti funkcionalnost izvajanja ukazov kot drug uporabnik, boste morali uporabiti funkcijo sudo, ki je na voljo v sistemih Linux. Direktiva Ansible become vam omogoča zagon ukazov kot določeni uporabnik.
Podatki o uporabniku so določeni v knjigi Ansible z uporabo spremenljivk postanejo, na primer become_pass, da se določi geslo uporabnika become_user in tudi kateri uporabnik lahko zažene ukaz.
Kako zagnati odgovorna opravila kot root
Če želite zagnati določen ukaz kot korenski uporabnik v programu Ansible, lahko implementirate direktivo postati in vrednost nastavite na 'true.'S tem lahko Ansible pri izvajanju ukaza izvede sudo brez argumentov.
Na primer, razmislite o knjigi Ansible, ki posodobi paket strežnika MySQL in ga nato znova zažene. V običajnih operacijah Linuxa se morate za izvajanje takih nalog prijaviti kot korenski uporabnik. V Ansible lahko preprosto pokličete direktivo postati: yes, kot je prikazano spodaj:
- gostitelji: vsipostati: da
naloge:
- ime: Ansible zaženi kot root in posodobi sys
njam:
ime: strežnik mysql
stanje: najnovejše
- ime:
storitev.storitev:
ime: mysqld
stanje: ponovno zagnano
V zgornji knjigi iger smo uporabili direktivo become in nismo določili uporabnika become_user, saj se vsi ukazi pod direktivo become privzeto izvajajo kot root.
To je podobno, če ga določite kot:
- gostitelji: vsipostati: da
postane_uporabnik: root
naloge:
- ime: Ansible zaženi kot root in posodobi sys
njam:
ime: strežnik mysql
stanje: najnovejše
- ime: storitev.storitev:
ime: mysqld
stanje: ponovno zagnano
Kako zagnati odgovorna opravila kot Sudo
Če želite zagnati nalogo Ansible kot določen uporabnik in ne kot običajni korenski uporabnik, lahko za izvajanje naloge uporabite direktivo become_user in posredujete uporabniško uporabniško ime. To je podobno uporabi ukaza sudo -u v Unixu.
Če želite implementirati direktivo become_user, morate najprej aktivirati direktivo postati, saj je postal_user neuporaben, če ta direktiva ni aktivirana.
Razmislite o naslednjem priročniku, v katerem se ukaz izvaja kot nobody user.
- ime: Zaženite ukaz kot drug uporabnik (nihče)ukaz: ps pom
postati: resnično
postani_metoda: su
postati_uporabnik: nihče
become_flags: '-s / bin / bash'
V zgornjem delčku knjige iger smo uvedli direktive postati, postati_user in druge postanejo.
- postani_metoda: To nastavi način stopnjevanja privilegij, na primer su ali sudo.
- direktiva postati_ uporabnik: To določa uporabnika za zagon ukaza kot; to ne pomeni postati: da.
- postanejo_znake: To nastavi zastavice, ki se uporabljajo za določeno nalogo.
Zdaj lahko zaženete zgornjo knjigo z imeni datoteke ansible-playbook.yml in si oglejte rezultat sami. Za naloge z izhodom boste morda morali implementirati modul za odpravljanje napak.
Kako zagnati Ansible postane z geslom
Če želite zagnati direktivo »postani«, ki zahteva geslo, lahko odgovorite Ansibleju, naj zahteva geslo pri klicu določene knjige.
Če želite na primer zagnati igro z geslom, vnesite spodnji ukaz:
ansible-playbook postal_pass.yml --ask-become-passDoločite lahko tudi zastavico -K, ki izvaja podobne operacije kot zgornji ukaz. Na primer:
ansible-playbook postal_pass.yml -KKo so določene, boste pozvani k vnosu gesla med izvajanjem nalog.
OPOMBA: Direktivo postati lahko uporabite tudi v surovih ukazih Ansible AD HOC z zastavico -b. Če želite izvedeti več, si oglejte spodnjo dokumentacijo:
https: // linkfy.do / postatiDokumentacija
Zaključek
Po branju tega članka bi zdaj morali vedeti, kako uporabiti direktivo Ansible BECOME za izvajanje stopnjevanja pravic za različna opravila.
Iz varnostnih razlogov je bolje uporabiti omejitve za različne račune in izrecno določiti, kdaj se uporabljajo. Tako je stopnjevanje privilegijev pomemben vidik uporabe sudo in su v Ansible.