ansibleのシェルモジュールを使って「私は誰ですか?」コマンドを実行すると空の応答が表示され、その理由を理解できません。
hosts: server1
remote_user: devops
become: true
tasks:
- name: print current user
shell: who am i
register: userr
- debug:
msg: "{{ userr.stdout }}"
[root@ansible test]# ansible-playbook test.yml
PLAY [test playbook] ********************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************
ok: [server1]
TASK [print current user] ***************************************************************************************************************************
changed: [server1]
TASK [debug] ****************************************************************************************************************************************
ok: [server1] => {
"msg": ""
}
PLAY RECAP ******************************************************************************************************************************************
server1 : ok=3 changed=1 unreachable=0 failed=0
答え1
私が考える理由は、ansibleがコマンドを実行するためにログインシェルを使用しないためです。したがって、コマンドには何も表示されません。
If you replace:
who am i
with:
su - anotheruser; who am i
出力を表示する必要があります。