У меня есть эта пьеса
---
- hosts: etl
tasks:
- name: command to test connection
command: "echo Hi!!"
- name: Run a command as adm user
command: "echo Hi!!"
become: yes
become_user: adm
become_method: dzdo
Инвентарь
[etl]
server.com
[etl:vars]
ansible_user=user
ansible_password=password
И ansible конфигурация
[defaults]
inventory=inventory.ini
host_key_checking=false
Теперь моя проблема, я не могу получить повышенные привилегии с ansible. Если я получаю доступ через s sh через терминал, я могу получить повышенные привилегии для пользователя adm. Пример:
> ssh user@server.com
> user@server.com's password: (type my password)
(remote server)
$ dzdo su - adm
adm@server.com:
Если я выполню ansible-playbook
, я получу эту ошибку
{'_ansible_no_log': False,
'_ansible_parsed': False,
'changed': False,
'failed': True,
'module_stderr': 'Shared connection to server.com closed.\r\n',
'module_stdout': "Sorry, user user is not allowed to execute '/bin/sh -c "
'echo BECOME-SUCCESS-tbdmbsghgeyufywzyiuqdckvzqucsyws; '
'/usr/bin/python '
"/var/tmp/ansible-tmp-1582739388.841735-202456551847923/AnsiballZ_command.py' "
'as adm on server.\r\n',
'msg': 'MODULE FAILURE\nSee stdout/stderr for the exact error',
'rc': 1}
Мой вопрос: Как работает ansible become
? Я нашел много документации об этом, но еще не понял, как ansible задает команду или что я делаю не так? Я не могу изменить что-либо на удаленном сервере и не могу запросить разрешения пользователя.