我正在学习ansible,遇到了不清楚的情况。运行以下模块命令,结果是“已更改”。
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: false
在 Ansible playbook 中,您可以通过添加到 play 来抑制“已更改”状态。如果播放成功,状态将为“OK”。