如何使用高级 Ansible 剧本条件来解析 json?

How to use advance Ansible playbook conditionals to parse json?

我正在尝试创建一个剧本,它使用 uri 模块在 ElasticSearch 中创建新的观察者任务。但是,当我将 运行 保持为错误时,我似乎在检查寄存器有效负载的条件上遇到了问题; "error while evaluating conditional: payload.contents.find("真") != -1"

从 uri 模块计算返回的 json 的正确方法是什么?

Related files on gist

(顺便说一句,我 运行 这个剧本是通过 vagrant 进行配置的,所以通过转储变量剧本进行调试几乎是不可能的,剧本在注册之前就死了。)

怎么样:

changed_when: (payload.content | from_json).created | bool

看起来因为我使用了 EPEL build, the issue was related to Ansible Pull Request #1011 因为 body_type 设置为 json 没有正确地将变量识别为字符串值,因为正文被传递给uri 作为字典。

解决方法是使用 lookup('template', '...') 而不是变量