Ansible 명령은 성공 대신 변경 사항을 반환합니다.

Ansible 명령은 성공 대신 변경 사항을 반환합니다.

나는 ansible을 배우고 있는데 불분명한 상황에 직면했습니다. 다음 모듈 명령을 실행하면 결과는 "Changed"입니다.

ansible agent.example.com -i inventory -m copy -a 'content="Node Managed by Ansible\n" dest=/etc/motd'

왜 성공적인 응답을 받지 못하는 걸까요? 실제로 motd 파일이 수정된 것을 확인했습니다.

이것이 작업의 출력입니다.

agent.example.com | CHANGED => {
    "changed": true, 
    "checksum": "3eb89f442d0bec80f2c59d6d66d621cc4ced7272", 
    "dest": "/etc/motd", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "2e92a9663d317113e1c4bafb2610f3d5", 
    "mode": "0644", 
    "owner": "root", 
    "secontext": "system_u:object_r:etc_t:s0", 
    "size": 24, 
    "src": "/home/admin/.ansible/tmp/ansible-tmp-1543639577.88-189984200437408/source", 
    "state": "file", 
    "uid": 0
}

답변1

Ansible에서는 "CHANGED" 상태로 재생됩니다.성공적인 응답. 실패하면 플레이가 "실패"한 것으로 보고됩니다.

changed_when: falseAnsible 플레이북에서는 플레이에 추가하여 "변경된" 상태를 억제할 수 있습니다. 재생이 성공하면 상태는 "OK"가 됩니다.

관련 정보