返回值
Ansible 模块通常返回一个数据结构,可以将其注册到变量中,或者在 ansible 程序输出时直接看到。每个模块可以选择性地记录其自己的唯一返回值(可以通过 ansible-doc 和 主文档站点 查看)。
本文档介绍了所有模块通用的返回值。
注意
Ansible 在处理模块的返回值后,可能会设置其中一些键。
常见
backup_file
对于那些在操作文件时实现 backup=no|yes 的模块,如果原始文件被更改,则会创建备份文件的路径。
"backup_file": "./foo.txt.32729.2020-07-30@06:24:19~"
changed
一个布尔值,表示任务是否对目标或委派主机进行了更改。
"changed": true
diff
有关先前状态和当前状态之间差异的信息。通常是一个包含 before
和 after
条目的字典,然后由回调插件格式化为差异视图。
"diff": [ { "after": "", "after_header": "foo.txt (content)", "before": "", "before_header": "foo.txt (content)" }, { "after_header": "foo.txt (file attributes)", "before_header": "foo.txt (file attributes)" }
failed
一个布尔值,表示任务是否失败。
"failed": false
invocation
有关如何调用模块的信息。
"invocation": { "module_args": { "_original_basename": "foo.txt", "attributes": null, "backup": true, "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709", "content": null, "delimiter": null, "dest": "./foo.txt", "directory_mode": null, "follow": false, "force": true, "group": null, "local_follow": null, "mode": "666", "owner": null, "regexp": null, "remote_src": null, "selevel": null, "serole": null, "setype": null, "seuser": null, "src": "/Users/foo/.ansible/tmp/ansible-tmp-1596115458.110205-105717464505158/source", "unsafe_writes": null, "validate": null }
msg
一个向用户转发的通用消息字符串。
"msg": "line added"
rc
一些模块执行命令行实用程序或专门用于直接执行命令(raw、shell、command 等),此字段包含这些实用程序的“返回代码”。
"rc": 257
results
如果存在此键,则表示任务中存在循环,并且它包含每个项目的正常模块“结果”列表。
"results": [ { "ansible_loop_var": "item", "backup": "foo.txt.83170.2020-07-30@07:03:05~", "changed": true, "diff": [ { "after": "", "after_header": "foo.txt (content)", "before": "", "before_header": "foo.txt (content)" }, { "after_header": "foo.txt (file attributes)", "before_header": "foo.txt (file attributes)" } ], "failed": false, "invocation": { "module_args": { "attributes": null, "backrefs": false, "backup": true } }, "item": "foo", "msg": "line added" }, { "ansible_loop_var": "item", "backup": "foo.txt.83187.2020-07-30@07:03:05~", "changed": true, "diff": [ { "after": "", "after_header": "foo.txt (content)", "before": "", "before_header": "foo.txt (content)" }, { "after_header": "foo.txt (file attributes)", "before_header": "foo.txt (file attributes)" } ], "failed": false, "invocation": { "module_args": { "attributes": null, "backrefs": false, "backup": true } }, "item": "bar", "msg": "line added" } ]
skipped
一个布尔值,表示任务是否被跳过。
"skipped": true
stderr
一些模块执行命令行实用程序或专门用于直接执行命令(raw、shell、command 等),此字段包含这些实用程序的错误输出。
"stderr": "ls: foo: No such file or directory"
stderr_lines
当返回 stderr 时,我们也会始终提供此字段,它是一个字符串列表,每个字符串都包含原始输出中的一行。
"stderr_lines": [ "ls: doesntexist: No such file or directory" ]
stdout
一些模块执行命令行实用程序或专门用于直接执行命令(raw、shell、command 等)。此字段包含这些实用程序的正常输出。
"stdout": "foo!"
stdout_lines
当返回 stdout 时,Ansible 始终提供一个字符串列表,每个字符串都包含原始输出中的一行。
"stdout_lines": [ "foo!" ]
内部使用
这些键可以由模块添加,但将从注册的变量中删除;它们被 Ansible 本身“消耗”。
ansible_facts
此键应包含一个字典,该字典将附加到分配给主机的事实。这些事实可以直接访问,不需要使用注册变量。
exception
此键可以包含由模块中的异常引起的跟踪信息。它只会在高详细程度 (-vvv) 下显示。
warnings
此键包含一个将呈现给用户的字符串列表。
deprecations
此键包含一个将呈现给用户的字典列表。字典的键是 msg 和 version,值是字符串,version 键的值可以是空字符串。
另请参见
- 集合索引
浏览现有的集合、模块和插件
- GitHub 模块目录
浏览核心模块和扩展模块的源代码
- 通讯
有问题?需要帮助?想分享你的想法?请访问 Ansible 通讯指南