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
출력이 표시되어야 합니다.