Koristeći Ansible možete izvršavati razne operacije na udaljenim strojevima koristeći sirove naredbe ili knjige za reprodukciju Ansible. Prema zadanim postavkama, Ansible playbook se izvršava na udaljenom hostu kao i isti korisnik na Ansible kontroleru. To znači da ako trebate pokrenuti naredbu kao drugi korisnik na udaljenom računalu, morat ćete je izričito navesti u svojoj knjizi odgovora Ansible.
Da biste implementirali funkcionalnost izvršavanja naredbi kao drugi korisnik, morat ćete upotrijebiti sudo značajku koja je dostupna u Linux sustavima. Direktiva Ansible become omogućuje vam izvršavanje naredbi kao navedeni korisnik.
Podaci o korisniku navedeni su u priručniku Ansible pomoću varijabli postati, kao što je become_pass, kako bi se odredila lozinka korisnika become_user, kao i koji korisnik može pokrenuti naredbu.
Kako pokrenuti odgovorne zadatke kao korijen
Da biste pokrenuli određenu naredbu kao korijenski korisnik u Ansibleu, možete implementirati naredbu postati i vrijednost postaviti na 'true.'To čini Ansibleu da implementira sudo bez argumenata prilikom izvođenja naredbe.
Na primjer, razmotrite knjigu Ansible koja ažurira paket MySQL poslužitelja, a zatim ga ponovno pokreće. U normalnim operacijama Linuxa, za izvršavanje takvih zadataka trebate se prijaviti kao root korisnik. U Ansibleu možete jednostavno nazvati direktivu become: yes, kao što je prikazano dolje:
- domaćini: svipostati: da
zadaci:
- ime: Ansible pokrenuti kao root i ažurirati sys
njam:
ime: mysql-poslužitelj
stanje: najnovije
- Ime:
servis.servis:
naziv: mysqld
stanje: ponovno pokrenuto
U gornjoj priručniku koristili smo direktivu become i nismo naveli korisnika become_user, jer se sve naredbe u skladu s direktivom default po pravilu izvode kao root.
Ovo je slično specificiranju kao:
- domaćini: svipostati: da
postati_korisnik: root
zadaci:
- ime: Ansible pokrenuti kao root i ažurirati sys
njam:
ime: mysql-poslužitelj
stanje: najnovije
- naziv: usluga.servis:
naziv: mysqld
stanje: ponovno pokrenuto
Kako pokrenuti odgovorne zadatke kao Sudo
Da biste pokrenuli zadatak Ansible kao određeni korisnik, a ne kao uobičajeni root korisnik, možete upotrijebiti direktivu become_user i proslijediti korisničko ime korisnika za izvršavanje zadatka. Ovo je potpuno poput korištenja naredbe sudo -u u Unixu.
Da biste primijenili direktivu postali_korisnik, prvo morate aktivirati direktivu postati, jer je postati_korisnik neupotrebljiv bez aktiviranja ove direktive.
Razmotrite sljedeću knjigu priručnika u kojoj se naredba izvodi kao nitko korisnik.
- ime: Pokrenite naredbu kao drugi korisnik (nitko)naredba: ps aux
postati: istina
postati_metoda: su
postati_korisnik: nitko
postaju_znakovi: '-s / bin / bash'
U gornji isječak knjige priručnika implementirali smo direktive postati, postati_korisnik i druge postanke.
- postati_metoda: Ovim se postavlja metoda eskalacije privilegija, poput su ili sudo.
- postani_korisnička direktiva: Ovo navodi korisnika da izvrši naredbu kao; to ne podrazumijeva postati: da.
- postaju_znakovi: Ovim se postavljaju zastavice koje će se koristiti za navedeni zadatak.
Sada možete pokrenuti gornju knjigu s play-om s imenom datoteke ansible-playbook.yml i uvjerite se sami u rezultat. Za zadatke s izlazom možda ćete trebati implementirati modul za otklanjanje pogrešaka.
Kako pokrenuti Ansible postati s lozinkom
Da biste pokrenuli direktivu za postajanje koja zahtijeva lozinku, možete reći Ansibleu da zatraži lozinku prilikom pozivanja navedene knjige.
Na primjer, za pokretanje playbooka s lozinkom unesite naredbu ispod:
ansible-playbook postati_prolaz.yml --ask-become-passTakođer možete odrediti zastavicu -K koja izvodi operacije slične gornjoj naredbi. Na primjer:
ansible-playbook postati_prolaz.yml -KJednom kada ste navedeni, od vas će se zatražiti lozinka prilikom izvršavanja zadataka.
BILJEŠKA: Direktivu postati možete koristiti i u sirovim naredbama Ansible AD HOC koristeći zastavicu -b. Da biste saznali više, pogledajte dolje navedenu dokumentaciju:
https: // linkfy.u / postatiDokumentacija
Zaključak
Nakon čitanja ovog članka, sada biste trebali znati kako koristiti direktivu Ansible BECOME za obavljanje eskalacije privilegija za razne zadatke.
Iz sigurnosnih razloga bolje je primijeniti ograničenja za različite račune i izričito navesti kada se koriste. Dakle, eskalacija privilegija važan je aspekt upotrebe sudo i su u Ansibleu.