В оболочке я следую приведенному ниже подходу, чтобы стать пользователем root без пароля. И это работает нормально.
ssh-agent bash
ssh-add /repository/ansible/.ssh/id_rsa_ansible
ssh -A ansible@e8-df1
[ansible@e8-df1 ~]$ sudo -i
[root@e8-df1 ~]#
Однако в ansible я не добиваюсь того же и получаю ошибку. Ниже мой инвентарь и игровая тетрадь.
Inventory:
[qv]
e8-df1
e8-df2
[qv:vars]
ansible_ssh_user=ansible
ansible_ssh_private_key_file=/repository/ansible/.ssh/id_rsa_ansible
Playbook:
---
- hosts: qv
become: yes
roles:
- abc
Ошибка:
fatal: [e8-df1]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_name": "setup"
},
"module_stderr": "Shared connection to e8-df1 closed.\r\n",
"module_stdout": "sudo: a password is required\r\n",
"msg": "MODULE FAILURE"
}
fatal: [e8-df2]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_name": "setup"
},
"module_stderr": "Shared connection to e8-df2 closed.\r\n",
"module_stdout": "sudo: a password is required\r\n",
"msg": "MODULE FAILURE"
}
Я просмотрел некоторые документы и вопросы и ответы, и они предлагают добавить строку ниже в файл sudoers.
ansible ALL=(ALL) NOPASSWD: ALL
Теперь я не могу понять, почему процедура оболочки работает без конфигурации sudoers. А есть ли другой способ добиться того же в ансибле?