Return Values
Ansible 模块通常会返回一个数据结构,该数据结构可以注册到变量中,或者在 ansible 程序输出时直接看到。 每个模块都可以选择性地记录自己独特的返回值。
常用字段
ansible_facts
该字段应包含一个字典,该字典将附加到分配给主机的事实中。 这些将可以直接访问,不需要使用注册变量。
changed
一个布尔值,指示任务是否必须对目标或委托主机进行更改。
cmd
执行模块的具体命令
msg
传递给用户的带有通用消息的字符串。
rc
一些模块执行命令行实用程序或适合直接执行命令(原始、shell、命令等),此字段包含这些实用程序的“返回代码”。
stderr
一些模块执行命令行实用程序或适合直接执行命令(raw、shell、command 等),此字段包含这些实用程序的错误输出。
stdout
一些模块执行命令行实用程序或适合直接执行命令(raw、shell、command 等)。 该字段包含这些实用程序的正常输出。
压缩日志
压缩日志,一行显示结果:
root@ubuntu-x64_01:~/return_value# ansible all -m shell -a "ls -tlh /opt/test.1" -o
192.168.88.11 | CHANGED | rc=0 | (stdout) -rw-r--r-- 1 root root 0 1月 6 16:41 /opt/test.1
192.168.88.12 | CHANGED | rc=0 | (stdout) -rw-r--r-- 1 root root 0 1月 6 16:41 /opt/test.1
192.168.88.13 | UNREACHABLE!: Failed to connect to the host via ssh: ssh: connect to host 192.168.88.13 port 22: No route to host
保存日志
日志输出到此目录
root@ubuntu-x64_01:~# ansible all -m shell -a "ls -tlh /opt/test.1" -t return_value
192.168.88.12 | CHANGED | rc=0 >>
-rw-r--r-- 1 root root 0 1月 6 16:41 /opt/test.1
192.168.88.11 | CHANGED | rc=0 >>
-rw-r--r-- 1 root root 0 1月 6 16:41 /opt/test.1
192.168.88.13 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.88.13 port 22: No route to host",
"unreachable": true
}
检查执行结果
执行后,将返回值日志保存到return_value目录下,多次执行,日志会被最后一次覆盖 !!!!!!!如果命令执行失败,那么 “changed:false” , “rc”: 1。 如果命令执行成功, 那么 “changed:true” 并且 “rc”: 0, 同时 “stderr”: “”, 可以根据这个来判断
成功日志
root@ubuntu-x64_01:~/return_value# cat 192.168.88.11 | jq
{
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": true,
"cmd": "ls -tlh /opt/test.1",
"delta": "0:00:00.008203",
"end": "2023-01-06 17:31:11.060031",
"msg": "",
"rc": 0,
"start": "2023-01-06 17:31:11.051828",
"stderr": "",
"stderr_lines": [],
"stdout": "-rw-r--r-- 1 root root 0 1月 6 16:41 /opt/test.1",
"stdout_lines": [
"-rw-r--r-- 1 root root 0 1月 6 16:41 /opt/test.1"
]
}
失败日志
root@ubuntu-x64_01:~/return_value# cat 192.168.88.13 | jq
{
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 192.168.88.13 port 22: No route to host",
"unreachable": true
}