Pomocou programu Ansible môžete na vzdialených počítačoch vykonávať rôzne operácie pomocou nespracovaných príkazov alebo hracích knižiek Ansible. V predvolenom nastavení sa hracia hra Ansible vykonáva na vzdialenom hostiteľovi ako ten istý používateľ v ovládači Ansible. To znamená, že ak potrebujete na vzdialenom počítači spustiť príkaz ako iný používateľ, budete ho musieť výslovne uviesť v príručke Ansible.
Ak chcete implementovať funkčnosť spúšťania príkazov ako iný používateľ, budete musieť použiť funkciu sudo, ktorá je k dispozícii v systémoch Linux. Direktíva Ansible become vám umožňuje spúšťať príkazy ako zadaný užívateľ.
Informácie o používateľovi sú špecifikované v príručke Ansible pomocou premenných become, ako je become_pass, na zadanie hesla používateľa become_user, a tiež na to, ktorý používateľ môže spustiť príkaz.
Ako spustiť možné úlohy ako root
Ak chcete spustiť konkrétny príkaz ako užívateľ root v Ansible, môžete implementovať direktívu become a nastaviť hodnotu na 'true.'Týmto urobíte príkazu Ansible implementovať sudo bez argumentov pri spustení príkazu.
Zvážte napríklad príručku Ansible, ktorá aktualizuje balík servera MySQL a potom ho reštartuje. Pri bežných operáciách systému Linux sa na vykonávanie týchto úloh budete musieť prihlásiť ako používateľ root. V položke Ansible môžete jednoducho nazvať direktívu become: yes, ako je uvedené nižšie:
- hostitelia: všetcistať sa: áno
úlohy:
- name: Možné spustenie ako root a update sys
mňam:
meno: mysql-server
stav: najnovšie
- názov:
služby.služba:
meno: mysqld
stav: reštartovaný
Vo vyššie uvedenej príručke sme použili direktívu become a neurčili sme používateľa become_user, pretože všetky príkazy v rámci direktívy become sú štandardne spustené ako root.
Je to podobné ako keby ste to určili ako:
- hostitelia: všetcistať sa: áno
stať sa_užívateľom: root
úlohy:
- name: Možné spustenie ako root a update sys
mňam:
meno: mysql-server
stav: najnovšie
- názov: služba.služba:
meno: mysqld
stav: reštartovaný
Ako vykonávať možné úlohy ako Sudo
Ak chcete spustiť úlohu Ansible ako konkrétny používateľ, a nie ako normálny používateľ root, môžete na vykonanie úlohy použiť direktívu become_user a zadať používateľské meno používateľa. Je to podobné ako použitie príkazu sudo -u v systéme Unix.
Ak chcete implementovať direktívu become_user, musíte najskôr aktivovať direktívu become, pretože the become_user je bez aktivácie tejto smernice nepoužiteľný.
Zvážte nasledujúcu príručku, v ktorej je príkaz spustený ako nikto.
- meno: Spustiť príkaz ako iný používateľ (nikto)príkaz: ps aux
stať sa: pravda
stať sa_metódou: su
stať sa_uživateľom: nikto
become_flags: '-s / bin / bash'
Vo vyššie uvedenom úryvku príručky sme implementovali smernice become, become_user a ďalšie, ktoré sa stanú smernicami.
- stať sa_metódou: Týmto sa nastaví metóda eskalácie privilégií, napríklad su alebo sudo.
- direktíva become_user: Toto určuje používateľa, ktorý má spustiť príkaz ako; to neznamená, že sa stane: áno.
- stať_príznakmi: Týmto sa nastavia príznaky, ktoré sa majú použiť pre zadanú úlohu.
Teraz môžete spustiť vyššie uvedený playbook s názvom súboru ansible-playbook.yml a výsledok si pozri sám. Pre úlohy s výstupom bude možno potrebné implementovať ladiaci modul.
Ako spustiť Ansible sa stane s heslom
Ak chcete spustiť direktívu, ktorá vyžaduje heslo, môžete povedať Ansible, aby pri vyvolaní určeného playbooku požiadal o heslo.
Napríklad ak chcete spustiť príručku s heslom, zadajte nasledujúci príkaz:
ansible-playbook become_pass.yml --ask-stať-prejsťMôžete tiež určiť príznak -K, ktorý vykonáva podobné operácie ako vyššie uvedený príkaz. Napríklad:
ansible-playbook become_pass.yml -KPo zadaní budete pri vykonávaní úloh vyzvaní na zadanie hesla.
POZNÁMKA: Direktívu become môžete použiť aj v príkazových príkazoch Ansible AD HOC raw pomocou príznaku -b. Ak sa chcete dozvedieť viac, prečítajte si dokumentáciu uvedenú nižšie:
https: // linkfy.do / stať sa dokumentáciou
Záver
Po prečítaní tohto článku by ste teraz mali vedieť, ako používať direktívu Ansible BECOME na vykonávanie eskalácie privilégií pre rôzne úlohy.
Z bezpečnostných dôvodov je lepšie implementovať obmedzenia pre rôzne účty a výslovne určiť, kedy sa používajú. Stupňovanie práv je teda dôležitým aspektom používania sudo a su v aplikácii Ansible.