Ansible の構成を自分の環境に適応させるのにいくつかの困難があります。
私のテスト環境:
- PermitRootLogin いいえ
- SSH 経由で接続できるのは 1 人のユーザーのみです (foo、権限なし)
- sudo 権限を持つユーザー (bar ALL=(ALL) ALL)
私の ansible ホスト インベントリは次のようになります。
[servers]
server1 ansible_ssh_host=192.168.0.1 ansible_sudo=true ansible_ssh_user=foo ansible_sudo_user=bar
foo ユーザー用の SSH キーを持っています。
このアドホック コマンド (またはその他のコマンド) を bar password で試すと、次のようになります。
ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
server1 | FAILED => Incorrect sudo password
次に、 foo password で同じコマンドを実行すると:
ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
Sorry, user foo is not allowed to execute '/bin/bash -c echo SUDO-SUCCESS-rlpfhamukjnsfyokqbjpbttviiuildif; echo test > /etc/testfile' as bar on server1.
したがって、Ansible は間違いなく foo を sudo ユーザーとして使用し、指定したように bar ではありません。foo の代わりに bar の使用を強制する方法はありますか? Ansible の sudo 機能を本当に理解していません。
server1 | FAILED | rc=1 >>
echo test > /etc/testfile : Permission denied
ホストに bar としてログインし、「sudo echo test > /etc/testfile」を実行すると、bar パスワードを要求され、コマンドが正しく実行されます。Ansible の動作のどこが間違っていますか?