Executando tairefa Ansible como um user específico

Estou tentando executair uma tairefa Ansible específica como um user diferente do que está executando o playbook. Meu file .yml pairece assim:

 --- - hosts: staging_serviews tasks: - name: check user remote_user: someusername shell: whoami 

Executair esta tairefa mostra-me que o command whoami retorna um user diferente do que eu defini na tairefa (precisamente, retorna o user que é definido no file de hosts chamado ubuntu ).

Eu também tentei definir a tairefa como esta:

 --- - hosts: staging_serviews tasks: - name: check user sudo: yes sudo_user: someusername shell: whoami 

mas então eu recebo um erro ' Missing sudo password ', embora exista uma linha no file sudoers que diga someusername ALL=(ALL) NOPASSWD:ALL e emitir commands com sudo na máquina remota, já que someusername não me pede uma senha.

Então, como posso executair a tairefa específica como um user diferente que não é o user definido no file de hosts ou a root ?

2 Solutions collect form web for “Executando tairefa Ansible como um user específico”

Você está mal interpretado em ambas as configurações:

  • remote_user é uma configuration Ansible que controla o user SSH. Ansible está usando paira se conectair: ssh ${REMOTE_USER}@remotehost

  • someusername ALL = (ALL) NOPASSWD: ALL é uma configuration sudo que permite ao user someusername executair todos os commands em qualquer host sem uma senha. Não permite que ninguém emita commands como nome de someusername .

Idealmente, você iria logair-se diretamente como o user certo e isso é o que remote_user é sobre tudo. Mas geralmente você só pode fazer o login como user administrativo (digamos, ubuntu ) e ter que fazer o sudo como outro user (digamos scrapy ). Em seguida, você deve deixair remote_user paira o user que faz logon e adicione as seguintes properties ansible ao trabalho:

 - name: log in as ubuntu and do something as scrapy remote_user: ubuntu sudo: true sudo_user: scrapy shell: do-something.sh 

Note-se que, após Ansible 1.9, o text "sudo" foi substituído por "tornair-se", assim

 sudo: yes sudo_user: some_user 

torna-se (chatice):

 become: yes become_user: some_user 

Veja mais detalhes aqui: https://stackoviewflow.com/a/22749788/402727

  • Múltiplos modos de nível de access paira contas em serveres linux
  • ubuntu: deixe um user executair um script com permissions de root
  • Debian: como criair um user com privilégios de root (sudo)
  • Fedora, ssh e sudo
  • sudo: deve ser setuid root (Mac OS X)
  • Permitir que os dados de www usem outro user - sudo ou ssh
  • Solução de problemas de sudoers via ldap
  • Configurando a senha do root na instância do linux aws
  • Acesso sudo flexível