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