新来的。我正在测试一本新的剧本,却发现了一个奇怪的结果。
我从这个简单的YAML开始
- hosts: dpa18
tasks:
- name: Check sudo access via sudo --list
command: sudo --list
register: sudo_access
...由此产生的产出如下:
TASK [Gathering Facts] *************************************************************************
ok: [dpa18]
TASK [Check sudo access via sudo --list] *******************************************************
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo
changed: [dpa18]
PLAY RECAP **************************************************************************************
dpa18 : ok=2 changed=1 unreachable=0 failed=0我用一行更新了YAML:
---
- hosts: dpa18
tasks:
- name: Check sudo access via sudo --list
become: yes
command: sudo --list
register: sudo_access
...然后重新运行。(为可读性而包装)
PLAY [dpa18] ***********************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************
ok: [dpa18]
TASK [Check sudo access via sudo --list] ******************************************************************************************
fatal: [dpa18]: FAILED! => {"changed": false,
"module_stderr": "Warning: Permanently added 'dpa18,10.0.0.217' (ECDSA) to the list of known hosts.\r\n
Authenticated to dpa18 ([10.0.0.217]:22).\r\n
Connection to dpa18 closed.\r\n
Transferred: sent 2908, received 2472 bytes, in 0.1 seconds\r\n
Bytes per second: sent 30231.6, received 25699.0\r\n",
"module_stdout": "sudo: a password is required\r\n",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1}
PLAY RECAP *************************************************************************************************************************
dpa18 : ok=1 changed=0 unreachable=0 failed=1我不明白为什么“密码是必需的”简单的--list什么命令是可用的用户。我相信sudo --list是,并不是对Ansible来说很实用,但是好奇心激发了我对上面的输出的兴趣。
发布于 2019-08-07 19:33:44
Ansible,或与您进行身份验证的用户,都无权在没有密码的情况下执行sudo命令。为此,您需要使用-K标志来指定它。
这与命令本身无关,而是简单地运行任何带有sudo前缀的命令。在试图执行命令的主机上,可以在/etc/sudoers文件中设置如下内容:
<user> ALL=(ALL) NOPASSWD: ALLhttps://stackoverflow.com/questions/57400360
复制相似问题