Ansible シェルモジュールの空の応答

Ansible シェルモジュールの空の応答

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

出力を表示する必要があります。

おすすめ記事