Próbuję uruchomić określone zadanie Ansible jako inny użytkownik niż ten, który prowadzi playbook. Mój .yml
plik wygląda następująco:
---
- hosts: staging_servers
tasks:
- name: check user
remote_user: someusername
shell: whoami
Uruchomienie tego zadania pokazuje mi, że whoami
polecenie zwraca innego użytkownika niż zdefiniowałem w zadaniu (dokładnie zwraca użytkownika zdefiniowanego w hosts
pliku o nazwie ubuntu
).
Próbowałem też zdefiniować takie zadanie:
---
- hosts: staging_servers
tasks:
- name: check user
sudo: yes
sudo_user: someusername
shell: whoami
ale wtedy Missing sudo password
pojawia się błąd „ ”, chociaż w sudoers
pliku jest wiersz , który mówi someusername ALL=(ALL) NOPASSWD:ALL
i wydaje polecenia sudo
na zdalnym komputerze, ponieważ someusername
nie pyta mnie o hasło.
Jak mogę uruchomić określone zadanie jako inny użytkownik, który nie jest użytkownikiem zdefiniowanym w hosts
pliku ani root
sam?
źródło
remote_user
domyślnie jest to aktualny użytkownik na twoim komputerze lokalnym - tak jak robi to ssh.Missing sudo password
błąd „ ”. Czy istnieje sposób na uniknięcie pytania o hasło dla tego konkretnego użytkownika?ubuntu ALL=(someusername) NOPASSWD: ALL
ale muszę pomyśleć o bezpieczeństwie za tym ... Czy jest jakiś inny sposób niż dodanie tego wiersza do sudoers?Zauważ, że po Ansible 1.9
sudo
sformułowanie zostało zastąpionebecome
tym samymstaje się (gra słów zamierzona):
Zobacz więcej szczegółów tutaj: /programming//a/22749788/402727
źródło