Я пытаюсь запустить определенную задачу Ansible от имени другого пользователя, нежели тот, кто запускает playbook. Мой .yml
файл выглядит так:
---
- hosts: staging_servers
tasks:
- name: check user
remote_user: someusername
shell: whoami
Выполнение этой задачи показывает мне, что whoami
команда возвращает пользователя, отличного от того, которого я определил в задаче (точнее, возвращает пользователя, определенного в hosts
вызываемом файле ubuntu
).
Я также попытался определить задачу следующим образом:
---
- hosts: staging_servers
tasks:
- name: check user
sudo: yes
sudo_user: someusername
shell: whoami
но затем я получаю Missing sudo password
ошибку ' ', хотя в sudoers
файле есть строка, в которой говорится someusername ALL=(ALL) NOPASSWD:ALL
и выдает команды sudo
на удаленной машине, так как someusername
не запрашивает у меня пароль.
Итак, как я могу запустить определенную задачу от имени другого пользователя, который не определен в hosts
файле или в root
самом себе?
источник
remote_user
умолчанию используется текущий пользователь на вашем локальном компьютере - так же, как и ssh.Missing sudo password
ошибку ' '. Есть ли способ избежать запроса пароля для этого конкретного пользователя?ubuntu ALL=(someusername) NOPASSWD: ALL
но я должен подумать о безопасности, стоящей за этим ... Есть ли другой способ, кроме добавления этой строки к sudoers?Обратите внимание , что после того, как анзибль 1.9, то
sudo
формулировка была замененаbecome
, таким образом ,становится (каламбур):
Подробности смотрите здесь: /programming//a/22749788/402727
источник