Ansible shell 模块空响应

Ansible shell 模块空响应

当我使用 ansible 的 shell 模块执行命令“我是谁”时,我得到一个空响应,我不明白为什么?

  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 没有使用登录 shell 来执行命令。所以该命令没有显示任何内容。

If you replace: 

who am i

with:

su - anotheruser; who am i

您应该看到一个输出。

相关内容