Estou tentando executar uma tarefa Ansible específica como um usuário diferente daquele que está executando o manual. Meu .yml
arquivo fica assim:
---
- hosts: staging_servers
tasks:
- name: check user
remote_user: someusername
shell: whoami
A execução desta tarefa mostra que o whoami
comando retorna um usuário diferente do que eu defini na tarefa (precisamente, retorna o usuário definido no hosts
arquivo chamado ubuntu
).
Eu também tentei definir a tarefa assim:
---
- hosts: staging_servers
tasks:
- name: check user
sudo: yes
sudo_user: someusername
shell: whoami
mas depois recebo o Missing sudo password
erro ' ', embora exista uma linha no sudoers
arquivo que diga someusername ALL=(ALL) NOPASSWD:ALL
e emita comandos sudo
na máquina remota, pois someusername
não me pede uma senha.
Então, como posso executar a tarefa específica como um usuário diferente, que não é o usuário definido no hosts
arquivo ou root
ele próprio?
fonte
remote_user
padrão é o usuário atual em sua máquina local - exatamente como o ssh faz.Missing sudo password
o erro ' '. Existe uma maneira de evitar solicitar senha para esse usuário específico?ubuntu ALL=(someusername) NOPASSWD: ALL
mas tenho que pensar na segurança por trás disso ... Existe outra maneira, exceto adicionar essa linha aos sudoers?Observe que, após a Ansible 1.9, o
sudo
texto foi substituído porbecome
, portanto,torna-se (trocadilho intencional):
Veja mais detalhes aqui: /programming//a/22749788/402727
fonte