概要
原則、rootユーザでタスクを実行する環境で、ある特定のタスクのみ実行ユーザを変更するためにbecome_userを使用したが、実行ユーザが変わらずにrootユーザでタスクが実行された。
事象
main.ymlで指定した'root user in ID'、'test1 user in ID'タスクが共に、rootユーザでidコマンドが実行される。
inventoryファイル
[all:vars]
ansible_become=true
ansible_become_method=sudo
ansible_become_user=root
ansible_become_pass=rootユーザのパスワード
ansible_ssh_user=sshユーザ
ansible_ssh_pass=sshユーザのパスワード
main.yml
- name: root user in ID
shell: id
- name: test1 user in ID
become: true
become_method: sudo
become_user: test1
shell: id
原因
ansible_become_userで指定されたユーザをタスクのbecome_userでは上書きできないため。
対処
'ansible_become_user=root'をinventoryファイルから削除する。
ansible_become_userのデフォルト値はrootになるため、become_userが指定されていないタスクはrootユーザで実行される。
inventoryファイル
[all:vars]
ansible_become=true
ansible_become_method=sudo
ansible_become_pass=rootユーザのパスワード
ansible_ssh_user=sshユーザ
ansible_ssh_pass=sshユーザのパスワード
main.yml
- name: root user in ID
shell: id
- name: test1 user in ID
become: true
become_method: sudo
become_user: test1
shell: id
参考
- なし。
0 件のコメント:
コメントを投稿