我正在学习安信,所以我写了一本我能想到的最简单的剧本和模块,但它失败了。
我的剧本
---
- hosts: demo
tasks:
- name: install demo
action: install
我的模块
echo "changed=True msg=OK"
以下似乎很好:
这是输出:
FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "changed=True msg=OK\r\n", "msg": "MODULE FAILURE", "parsed": false}
我做错了什么?我怎样才能做到这一点?
答案 0 :(得分:7)
模块must be JSON的输出。
试试这个:
echo "{\"changed\": false, \"msg\" : \"ok\"}"
来自docs:
您也不应该在模块中执行此操作:
print "some status message"
因为输出应该是有效的JSON。
和
如果模块返回stderr或者无法生成有效的JSON,则实际输出仍将显示在Ansible中,但该命令将不会成功。