shell: /usr/bin/foo register: result ignore_errors: True
debug: msg: "it failed" when: result is failed 这个代码对吗,register:result,这个result应该是个json把,这个值判断is failed is success对吗?
register: result 的数据类型 result 变量是一个 Python 字典(类似 JSON 对象),包含以下关键字段: python { "changed": true|false, # 任务是否改变了系统状态 "failed": true|false, # 任务是否失败(核心字段) "rc": 0|1|2, # 命令的返回码(Return Code) "stdout": "输出内容", # 命令的标准输出 "stderr": "错误内容", # 命令的错误输出 "msg": "描述信息" # 附加信息(某些模块特有) } 2. 判断条件 when: result is failed 的正确性 ✅ 完全正确!这是 Ansible 推荐的判断方式。原理: failed 是注册变量中的布尔字段 is failed 是 Ansible 的特殊测试函数(专用于检查任务状态) changed 和 failed 是所有 Ansible 模块的公共返回值
register: result 的数据类型
– _java_python 3个月前result 变量是一个 Python 字典(类似 JSON 对象),包含以下关键字段:
python
{
"changed": true|false, # 任务是否改变了系统状态
"failed": true|false, # 任务是否失败(核心字段)
"rc": 0|1|2, # 命令的返回码(Return Code)
"stdout": "输出内容", # 命令的标准输出
"stderr": "错误内容", # 命令的错误输出
"msg": "描述信息" # 附加信息(某些模块特有)
}
2. 判断条件 when: result is failed 的正确性
✅ 完全正确!这是 Ansible 推荐的判断方式。原理: failed 是注册变量中的布尔字段 is failed 是 Ansible 的特殊测试函数(专用于检查任务状态)
changed 和 failed 是所有 Ansible 模块的公共返回值