◆やりたいこと:
Ansibleにて、rootユーザーからhogeinstユーザーにスイッチしてdb2コマンドを発行したい。
◆問題:playbookにsuベタ打ちでshellモジュールを記載すると成功するが、becomeモジュールを利用するとエラーとなる
①becomeを利用して記述
- name: test1
become: yes
become_user: hogeinst
become_method: su
shell: /home/hogeinst/sqllib/bin/db2_ps
結果:失敗(標準出力"DB2INSTANCE environment variable is not set."とあるため、hogeinstユーザーから発行できていないと思われる)
②suベタ打ちで記述
- name: test2
shell: su - hogeinst -c /home/hogeinst/sqllib/bin/db2_ps
結果:成功。(ただし,become,become_user,become_methodを使えと怒られる)
③実行ユーザーを確認
- name: test3
become: yes
become_user: hogeinst
become_method: su
shell: whoami
結果:(成功。標準出力はhogeinstとなる)
◆質問内容
上記①、②は同じ挙動となると想定していたが、挙動が違った。思い当たる差異はありますでしょうか
◆補足
ansibleのバージョンは2.9.1
OSはRedHat7.6です。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/10 08:13