Korzystając z Ansible, możesz wykonywać różne operacje na zdalnych maszynach za pomocą surowych poleceń lub poradników Ansible. Domyślnie na hosta zdalnym wykonywano podręcznik Ansible jako ten sam użytkownik na kontrolerze Ansible. Oznacza to, że jeśli musisz uruchomić polecenie jako inny użytkownik na zdalnym komputerze, musisz je wyraźnie określić w swoim podręczniku Ansible.
Aby zaimplementować funkcjonalność uruchamiania poleceń jako innego użytkownika, musisz użyć funkcji sudo dostępnej w systemach Linux. Dyrektywa ansible pozwala uruchomić polecenia jako określony użytkownik.
Informacje użytkownika są określone w ANSible Playbook za pomocą zmiennych staje się, takich jak boks_pass, w celu określenia hasła użytkownika stać się_user, a także który użytkownik może uruchomić polecenie.
Jak uruchomić zadania ansible jako root
Aby uruchomić określone polecenie jako użytkownika root w ansible, możesz zaimplementować dyrektywę i ustawić wartość na „true.„Robienie tego mówi Ansible, aby wdrożyć sudo bez argumentów podczas uruchamiania polecenia.
Rozważmy na przykład podręcznik Ansible, który aktualizuje pakiet MySQL-Server, a następnie uruchom go ponownie. W normalnych operacjach Linuksa musisz zalogować się jako użytkownik root, aby wykonywać takie zadania. W Ansible możesz po prostu zadzwonić do dyrektywy: Tak, jak pokazano poniżej:
- Gospodarze: Wszyscy
stać się: tak
Zadania:
- Nazwa: ansible uruchom jako root i aktualizacja Sys
mniam:
Nazwa: MySQL-Server
Stan: Najnowsze
- nazwa:
praca.praca:
Nazwa: Mysqld
Stan: zrestartowany
W powyższym podręczniku wykorzystaliśmy dyrektywę i nie określiliśmy użytkownika staw_user, ponieważ wszelkie polecenia w ramach dyrektywy są domyślnie uruchamiane jako root.
Jest to podobne do określenia go jako:
- Gospodarze: Wszyscy
stać się: tak
stać się_user: root
Zadania:
- Nazwa: ansible uruchom jako root i aktualizacja Sys
mniam:
Nazwa: MySQL-Server
Stan: Najnowsze
- Nazwa: serwis.praca:
Nazwa: Mysqld
Stan: zrestartowany
Jak uruchomić zadania ansible jako sudo
Aby uruchomić zadanie ansible jako konkretny użytkownik, a nie normalny użytkownik root, możesz użyć dyrektywy standardowej i przekazać nazwę użytkownika użytkownika, aby wykonać zadanie. To jest jak użycie polecenia sudo -u w Unix.
Aby zaimplementować dyrektywę STOBE_USER, musisz najpierw aktywować dyrektywę, ponieważ STOS_USER jest bezużyteczny bez aktywowanej dyrektywy.
Rozważ następujący podręcznik, w którym polecenie jest uruchamiane jako użytkownik nikogo.
- Nazwa: Uruchom polecenie jako inny użytkownik (nikt)
Polecenie: PS Aux
staje się prawdą
stać się_method: su
Zostań_user: Nikt
stać się_flags: '-s /bin /bash'
W powyższym fragmencie podręcznika zaimplementowaliśmy, że stajemy się, a inne wytyczne.
Możesz teraz uruchomić powyższy podręcznik z nazwą pliku Ansible-Playbook.YML i zobacz wynik dla siebie. W przypadku zadań z wyjściem może być konieczne wdrożenie modułu debugowania.
Jak uruchomić Ansible z hasłem
Aby uruchomić dyrektywę, która wymaga hasła, możesz powiedzieć Ansible, aby poprosić o hasło podczas wywoływania określonego podręcznika.
Na przykład, aby uruchomić podręcznik z hasłem, wprowadź poniższe polecenie:
ansible-playbook staje się_pass.YML-CASK-BECOME-PASS
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 -k
Po określaniu zostaniesz poproszony o hasło podczas wykonywania zadań.
NOTATKA: Możesz także użyć dyrektywy w poleceniach surowych ansible ad hoc za pomocą flagi -B. Aby dowiedzieć się więcej, sprawdź poniższą dokumentację:
https: // linkfy.do/stać się ededokumentacją
Wniosek
Po przeczytaniu tego artykułu powinieneś teraz wiedzieć, jak korzystać z dyrektywy Ansible do wykonywania eskalacji przywilejów dla różnych zadań.
Ze względów bezpieczeństwa lepiej jest wdrożyć ograniczenia dla różnych kont i wyraźnie określić, kiedy są one używane. Tak więc uprzywilejowanie eskalacja jest ważnym aspektem korzystania z Sudo i SU w Ansible.