![パスワードなしの sudo が有効になっているにもかかわらず、Ansible で「sudo パスワードが見つかりません」と表示される](https://rvso.com/image/760959/%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AA%E3%81%97%E3%81%AE%20sudo%20%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AB%E3%82%82%E3%81%8B%E3%81%8B%E3%82%8F%E3%82%89%E3%81%9A%E3%80%81Ansible%20%E3%81%A7%E3%80%8Csudo%20%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%8D%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B.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:
。そうしないと、他の変数は無視されます。