为什么我的自定义Ansible模块失败?
我正在学习ansible,所以我写了我能想到的最简单的剧本和模块,但失败了 我的剧本为什么我的自定义Ansible模块失败?,ansible,ansible-playbook,Ansible,Ansible Playbook,我正在学习ansible,所以我写了我能想到的最简单的剧本和模块,但失败了 我的剧本 --- - hosts: demo tasks: - name: install demo action: install 我的模块 echo "changed=True msg=OK" 以下几点似乎很好: bash脚本模式是755 剧本已正确链接到模块 这是输出: FAILED! => {"changed": false, "failed": true, "module_
---
- hosts: demo
tasks:
- name: install demo
action: install
我的模块
echo "changed=True msg=OK"
以下几点似乎很好:
- bash脚本模式是755
- 剧本已正确链接到模块
FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "changed=True msg=OK\r\n", "msg": "MODULE FAILURE", "parsed": false}
我做错了什么?如何使其工作?模块的输出
试试这个:
echo "{\"changed\": false, \"msg\" : \"ok\"}"
从:
您也不应在模块中执行此操作:
print "some status message"
因为输出应该是有效的JSON
以及:
如果模块返回stderr或以其他方式无法生成有效的JSON,实际输出仍将以Ansible显示,但命令将不会成功
模块的输出
试试这个:
echo "{\"changed\": false, \"msg\" : \"ok\"}"
从:
您也不应在模块中执行此操作:
print "some status message"
因为输出应该是有效的JSON
以及:
如果模块返回stderr或以其他方式无法生成有效的JSON,实际输出仍将以Ansible显示,但命令将不会成功
请在回音行中将您的答案更正为有效的json
echo“{\”changed\”:false}”
我认为非JSON输出在1.8中被删除了。它被称为“baby JSON”。请在回音行中将您的答案更正为有效的JSONecho“{\”changed\”:false}”
我认为非JSON输出在1.8中被删除了。它被称为“宝贝”。