サーバーの構成ではありません。 ansible がパスワードなしで使用しているユーザーに対して sudo が許可されていることを確認してください。
<オール>sudo visudo
で sudoers ファイルを開きます centos ALL=(ALL) NOPASSWD:ALL
centos
を置き換えます ユーザーと以下を実行して、サーバー自体から試すことができます:
sudo -u [yourusername] sudo echo "success"
これが機能する場合は、ansible からも機能するはずです。
デフォルトでは、ansible は次のフラグで sudo を実行します:-H -S -n
根になる。どこ --non-interactive
オプション -n
に対応する長い形式になります .このオプションは、認証モジュールに自分の仕事をさせようとせずに、sudo にエラー メッセージを返させるようです。
最も関連性の高い ansible バージョンについて、以下の行を含む ~/.ansible.cfg を作成することで、パスワード エラーを回避することができました。
アンシブル 2.4
[defaults]
sudo_flags = --set-home --stdin
アンシブル 2.9
[sudo_become_plugin]
flags = -H -S
少なくとも、pam_ssh_agent_auth.so を実行して認証するには、これで十分でした。
バージョン 2.8 より前では上記の例が機能し、2.8 以降では 2 番目の例が必要です。新しいスタイルの構成に関するドキュメントは、Ansible ユーザーガイドにあります。