![即使启用了无密码 sudo,Ansible 仍会“缺少 sudo 密码”](https://linux22.com/image/760959/%E5%8D%B3%E4%BD%BF%E5%90%AF%E7%94%A8%E4%BA%86%E6%97%A0%E5%AF%86%E7%A0%81%20sudo%EF%BC%8CAnsible%20%E4%BB%8D%E4%BC%9A%E2%80%9C%E7%BC%BA%E5%B0%91%20sudo%20%E5%AF%86%E7%A0%81%E2%80%9D.png)
我的 sudoers 文件中有
ALL ALL = (ALL) NOPASSWD: ALL
这允许任何人使用 sudo 而无需输入密码。并且我确认当我 ssh 进入机器时,我可以不使用密码使用 sudo。
然而,当我尝试在其上运行剧本时,出现错误“缺少 sudo 密码”。
我用来运行的命令是
ansible-playbook -i inventory.yaml common_install.yaml --limit vpn.lan.example.com -vvv
我运行了相同的命令,将其限制到具有相同 sudo 规则的另一台主机,并且都运行 Ubuntu 20.04,并且它在那台主机上运行正常。但在此主机上不起作用。
为什么它不起作用?
答案1
您可能尚未使用用户名和密码值/文件填充 group_vars 或 host_vars 目录。
group_vars 目录的示例:
节点.yml
ansible_port: 22
ansible_user: username
ansible_password: password
ansible_connection: ssh
ansible_become_pass: otherPassword
注意:group_vars/host_vars 目录中的变量包含以下文件仅限变量不要包含vars:
关键字,否则其他变量将被忽略。