Směrnice Ansible Become Become pro spouštění příkazů jako určený uživatel

Ansible Become Directive Run Commands



Pomocí Ansible můžete na vzdálených počítačích provádět různé operace pomocí nezpracovaných příkazů nebo herních sešitů Ansible. Ve výchozím nastavení je na vzdáleném hostiteli spuštěn playbook Ansible jako stejný uživatel na ovladači Ansible. To znamená, že pokud potřebujete spustit příkaz jako jiný uživatel na vzdáleném počítači, budete jej muset výslovně zadat ve svém playlistu Ansible.

Chcete -li implementovat funkce spouštění příkazů jako jiný uživatel, budete muset použít funkci sudo, která je k dispozici v systémech Linux. Směrnice Ansible become vám umožňuje spouštět příkazy jako zadaný uživatel.







Informace o uživateli jsou specifikovány v příručce Ansible pomocí proměnných become, jako například become_pass, k zadání hesla uživatele become_user a toho, který uživatel může příkaz spustit.



Jak spustit možné úkoly jako root

Chcete -li spustit konkrétní příkaz jako uživatel root v Ansible, můžete implementovat direktivu stal a nastavit hodnotu na „true“. To udělá Ansible implementaci sudo bez argumentů při spuštění příkazu.



Zvažte například playlist Ansible, který aktualizuje balíček serveru MySQL a poté jej restartuje. Při běžných operacích Linuxu byste se k provádění těchto úkolů museli přihlásit jako uživatel root. V Ansible můžete jednoduše zavolat direktivu become: yes, jak je uvedeno níže:





- hostitelé: všichni

stát se:Ano

úkoly:

- název: Možný běhtak jakoroot a aktualizovat sys

Mňam:

název: mysql-server

stav: nejnovější

- název:

service.service:
název: mysqld

stav: restartováno

Ve výše uvedené příručce jsme použili direktivu stal a neurčili jsme uživatele stal_uživatele, protože všechny příkazy v rámci direktivy se ve výchozím nastavení spouští jako root.

Je to podobné, jako když to zadáte jako:



- hostitelé: všichni

stát se:Ano

stát se_uživatelem: root

úkoly:

- název: Možný běhtak jakoroot a aktualizovat sys

Mňam:
název: mysql-server

stav: nejnovější

- název: service.service:

název: mysqld

stav: restartováno

Jak spustit možné úkoly jako Sudo

Chcete -li spustit úlohu Ansible jako konkrétní uživatel, nikoli jako normální uživatel root, můžete použít direktivu become_user a předat uživatelské jméno uživatele k provedení úlohy. Je to docela podobné použití příkazu sudo -u v Unixu.

Chcete -li implementovat direktivu become_user, musíte nejprve aktivovat direktivu stal se, protože parametr stal_user je bez této směrnice nepoužitelný.

Zvažte následující příručku, ve které je příkaz spuštěn jako uživatel nikdo.

- název: Spustit apříkaz tak jakojiný uživatel(nikdo)
příkaz:psz

stát se:skutečný

stát se_metodou:své

stát se_uživatelem: nikdo

stát se_příznaky:'-s /bin /bash'

Ve výše uvedeném úryvku příručky jsme implementovali směrnice stal, stal se_uživatel a další se staly směrnicemi.

  1. stát_metoda : Tím se nastaví metoda eskalace oprávnění, například su nebo sudo.
  2. direktiva stal_uživatel : Toto určuje, že uživatel má příkaz spustit jako; to neznamená, že se stane: ano.
  3. stát se vlajkami : Tím se nastaví příznaky, které se mají použít pro zadaný úkol.

Nyní můžete spustit výše uvedenou příručku s ansible-playbook filename.yml a výsledek uvidíte sami. U úkolů s výstupem možná budete muset implementovat ladicí modul.

Jak spustit Ansible se stát heslem

Chcete -li spustit direktivu stal se, která vyžaduje heslo, můžete říct Ansible, aby požádala o heslo při vyvolání zadaného playbooku.

Chcete -li například spustit playbook s heslem, zadejte níže uvedený příkaz:

ansible-playbook become_pass.yml--ask-become-pass

Můžete také zadat příznak -K, který provádí podobné operace jako výše uvedený příkaz. Například:

ansible-playbook become_pass.yml-K

Jakmile je zadán, budete při provádění úkolů vyzváni k zadání hesla.

POZNÁMKA : Můžete také použít direktivu become v příkazech Ansible AD HOC raw pomocí příznaku -b. Chcete -li se dozvědět více, podívejte se do níže uvedené dokumentace:

https://linkfy.to/becomeDocumentation

Závěr

Po přečtení tohoto článku byste nyní měli vědět, jak pomocí direktivy Ansible BECOME provádět eskalaci oprávnění pro různé úkoly.

Z bezpečnostních důvodů je lepší implementovat omezení pro různé účty a výslovně určit, kdy jsou použity. Eskalace oprávnění je tedy důležitým aspektem používání sudo a su v Ansible.