ansibleを使用して、既存のサーバーのグループを管理したいと思います。ansible_hosts
ファイルを作成し-K
、単一のホストのみをターゲットとするコマンドで(オプションを使用して)正常にテストしました
ansible -i ansible_hosts host1 --sudo -K # + commands ...
私の問題は、各ホストのユーザーパスワードが異なることですが、Ansibleでこれを処理する方法が見つかりません。
を使用すると-K
、前もって単一のsudoパスワードの入力を求められるだけで、プロンプトなしで後続のすべてのホストで試行されるようです。
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
これまでの研究:
StackOverflowの質問 1つの間違った答え(「を使用して
-K
」)と『私はパスワードなしsudoを必要と分かった』と言っ作者つの応答Ansible docs。「パスワードなしのsudoを使用すると自動化が容易になりますが、必須ではありません」(エンファシス鉱山)
このセキュリティStackExchangeの質問は、読み取りとして
NOPASSWD
必要なものです記事「スケーラブルかつ理解プロビジョニング...」と言います。
「sudoを実行するには、パスワードを入力する必要があります。これは、Ansibleを永久にブロックする確実な方法です。簡単な修正方法は、ターゲットホストでvisudoを実行し、Ansibleがログインに使用するユーザーがパスワードを入力する必要がないようにすることです」
-
「Ansibleはルートとしてターゲットサーバーにログインし、sudoの必要性を回避したり、パスワードなしでansibleユーザーにsudoを許可したりすることができますが、いずれにしても、脾臓が食道を跳ね上げてウインドパイプをブロックする恐れがあります。しないで」
私の考えは正確ですが、単一のサーバーを超えて拡張する方法は?
ansible issue#1227、「AnsibleはPlaybookのすべてのユーザーにsudoパスワードを要求する必要があります」。これは1年前にmpdehaanによって閉じられ、「これに対する需要はあまり見られません。ほとんどの場合、ユーザーアカウントまたはキーを使用します。」
だから...これらのような状況でAnsibleをどのように使用していますか?で設定NOPASSWD
すると/etc/sudoers
、ホスト間でパスワードを再利用したり、ルートSSHログインを有効にしたりすることで、セキュリティが大幅に低下します。
sudo
(これにはまだパスワードが必要です)。
ansible_ssh_password
設定はSSHパスワードにのみ適用されます(手がかりは名前にあります...)。&私はすでにキーベースのSSHログインを使用しています。