Ansible relata “permissão negada” ao emitir o comando no host remoto

4

Ansible 2.1
Ansible host: Ubuntu 16,04
Host remoto: CentOS 6.5

Sou muito novo no Ansible. Eu tenho um projeto simples ansible:

├── hosts
├── roles
│   └── setup
│       ├── defaults
│       │   └── main.yml
│       ├── tasks
│       │   └── main.yml
│       └── templates
│           └── automation-agent.config.j2
└── site.yml

Comando que eu usei para executar o manual:

ansible-playbook -i hosts site.yml --user admin --ask-pass

No host remoto, configurei o usuário admin com privilégio de raiz:

root    ALL=(ALL)       ALL
admin   ALL=(ALL)       ALL

No entanto, uma das tarefas do livro de exercícios entrou em questão:

- name: Back up Automation Agent config file if exists
  command: mv /etc/mongodb-mms/automation-agent.config /etc/mongodb-mms/automation-agent.config.bak

Relatórios Ansible:

TASK [setup : Back up Automation Agent config file if exists] ******************
fatal: [192.168.241.135]: FAILED! => {"changed": true, "cmd": ["mv", "/etc/mongodb-mms/automation-agent.config", "/etc/mongodb-mms/automation-agent.config.bak"], "delta": "0:00:00.002588", "end": "2016-06-01 22:57:55.577158", "failed": true, "rc": 1, "start": "2016-06-01 22:57:55.574570", "stderr": "mv: cannot move '/etc/mongodb-mms/automation-agent.config' to '/etc/mongodb-mms/automation-agent.config.bak': Permission denied", "stdout": "", "stdout_lines": [], "warnings": []}

Notou que a configuração de permissão em /etc/mongodb-mms/automation-agent.config é 0600

-rw-------. 1 mongod mongod 313 Jun 1 04:48 automation-agent.config

Aparentemente, seria necessário sudo priviledge fazer alterações neste arquivo. Eu tentei o --become e --become-user do Ansible, mas não obtive sucesso.

ansible-playbook -i hosts site.yml --user admin --ask-pass --become --become-user admin

O que devo fazer no Ansible para ganhar sudo e fazer alterações nesse arquivo?

    
por Howard Lee 02.06.2016 / 19:09

1 resposta

2

Você está usando --become-user admin , então você está basicamente fazendo sudo -u admin , mas pretende se tornar root ( sudo -u root ).

Não especifique --become-user admin ou use --become-user root , e Ansible por padrão tentará se tornar root .

Se você precisar especificar uma senha para se tornar root , use o sinalizador --ask-become-pass .

Se você não quiser que uma sudo senha seja solicitada ao usar sudo , sua entrada sudoers para o usuário admin deverá ser a seguinte:

admin   ALL=(ALL)       NOPASSWD:ALL
    
por 02.06.2016 / 20:03

Tags