![Ansible“缺少 sudo 密碼”,即使啟用了無密碼 sudo](https://rvso.com/image/760959/Ansible%E2%80%9C%E7%BC%BA%E5%B0%91%20sudo%20%E5%AF%86%E7%A2%BC%E2%80%9D%EF%BC%8C%E5%8D%B3%E4%BD%BF%E5%95%9F%E7%94%A8%E4%BA%86%E7%84%A1%E5%AF%86%E7%A2%BC%20sudo.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:
關鍵字,否則您的其他變數將被忽略。