パスワードなしの sudo が有効になっているにもかかわらず、Ansible で「sudo パスワードが見つかりません」と表示される

パスワードなしの sudo が有効になっているにもかかわらず、Ansible で「sudo パスワードが見つかりません」と表示される

私は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:。そうしないと、他の変数は無視されます。

関連情報