Dyrektywa Ansible Become do uruchamiania poleceń jako określony użytkownik

Ansible Become Directive Run Commands



Korzystając z Ansible, możesz wykonywać różne operacje na zdalnych komputerach za pomocą surowych poleceń lub podręczników Ansible. Domyślnie Playbook Ansible jest wykonywany na zdalnym hoście jako ten sam użytkownik na kontrolerze Ansible. Oznacza to, że jeśli chcesz uruchomić polecenie jako inny użytkownik na zdalnym komputerze, musisz wyraźnie je określić w swoim podręczniku Ansible playbook.

Aby zaimplementować funkcjonalność uruchamiania poleceń jako inny użytkownik, będziesz musiał użyć funkcji sudo, która jest dostępna w systemach Linux. Dyrektywa Ansible staje się umożliwia uruchamianie poleceń jako określony użytkownik.







Informacje o użytkowniku są określone w podręczniku Ansible przy użyciu zmiennych stają się, takich jak staje się_pass, aby określić hasło użytkownika staje się_użytkownik, a także tego, który użytkownik może uruchomić polecenie.



Jak uruchamiać zadania Ansible jako root

Aby uruchomić określone polecenie jako użytkownik root w Ansible, możesz zaimplementować dyrektywę get i ustawić wartość na „true”. Spowoduje to, że Ansible zaimplementuje sudo bez argumentów podczas uruchamiania polecenia.



Rozważmy na przykład podręcznik Ansible, który aktualizuje pakiet serwera MySQL, a następnie go ponownie uruchamia. W normalnych operacjach Linuksa, aby wykonać takie zadania, musisz zalogować się jako użytkownik root. W Ansible możesz po prostu wywołać dyrektywę stać się: tak, jak pokazano poniżej:





- gospodarze: wszyscy

zostać:tak

zadania:

- nazwa: Bieg Ansiblejaksystem rootowania i aktualizacji

mniam:

nazwa: mysql-server

stan: najnowszy

- Nazwa:

usługa.usługa:
nazwa: mysqld

stan: zrestartowany

W powyższym podręczniku użyliśmy dyrektywy staje się i nie określiliśmy użytkownika staje się_użytkownikiem, ponieważ wszystkie polecenia objęte dyrektywą stają się domyślnie uruchamiane jako root.

Jest to podobne do określenia go jako:



- gospodarze: wszyscy

zostać:tak

zostań_użytkownikiem: root

zadania:

- nazwa: Bieg Ansiblejaksystem rootowania i aktualizacji

mniam:
nazwa: mysql-server

stan: najnowszy

- nazwa:usługa.usługa:

nazwa: mysqld

stan: zrestartowany

Jak uruchamiać zadania Ansible jako Sudo

Aby uruchomić zadanie Ansible jako określony użytkownik, a nie jako zwykły użytkownik root, możesz użyć dyrektywy staje się_użytkownikiem i przekazać nazwę użytkownika, aby wykonać zadanie. Przypomina to polecenie sudo -u w systemie Unix.

Aby zaimplementować dyrektywę staje się_użytkownikiem, należy najpierw aktywować dyrektywę staje się, ponieważ staje się_użytkownik jest bezużyteczny bez aktywowania tej dyrektywy.

Rozważmy następujący podręcznik, w którym polecenie jest uruchamiane jako użytkownik none.

- nazwa: BiegnijKomenda jakinny użytkownik(nikt)
Komenda:psz

zostać:prawda

zostań_metodą:jego

zostań_użytkownikiem: nikt

zostań_flagami:'-s /bin/bash'

W powyższym fragmencie z podręcznika zaimplementowaliśmy dyrektywy stają się, stają się_użytkownikami i innymi stają się dyrektywami.

  1. zostań_metodą : Ustawia metodę eskalacji uprawnień, taką jak su lub sudo.
  2. dyrektywa zostań_użytkownikiem : Określa użytkownika, który ma uruchomić polecenie jako; nie oznacza to, że staje się: tak.
  3. zostań_flagami : Ustawia flagi, które mają być używane dla określonego zadania.

Możesz teraz uruchomić powyższy podręcznik z plikiem ansible-playbook nazwa pliku.yml i zobaczyć wynik dla siebie. W przypadku zadań z danymi wyjściowymi może być konieczne zaimplementowanie modułu debugowania.

Jak uruchomić Ansible z hasłem

Aby uruchomić dyrektywę stania, która wymaga hasła, możesz powiedzieć Ansible, aby poprosił o hasło podczas wywoływania określonego playbooka.

Na przykład, aby uruchomić playbook z hasłem, wpisz poniższe polecenie:

ansible-playbook staje się_pass.yml--poproś-zostań-przepustką

Możesz także określić flagę -K, która wykonuje podobne operacje do powyższego polecenia. Na przykład:

ansible-playbook staje się_pass.yml-DO

Po określeniu zostaniesz poproszony o podanie hasła podczas wykonywania zadań.

NOTATKA : Możesz również użyć dyrektywy zostań w surowych poleceniach Ansible AD HOC za pomocą flagi -b. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją podaną poniżej:

https://linkfy.to/becomeDocumentation

Wniosek

Po przeczytaniu tego artykułu powinieneś już wiedzieć, jak używać dyrektywy Ansible BECOME do eskalacji uprawnień do różnych zadań.

Ze względów bezpieczeństwa lepiej jest wprowadzić ograniczenia dla różnych kont i wyraźnie określić, kiedy są używane. Tak więc eskalacja uprawnień jest ważnym aspektem używania sudo i su w Ansible.