如何使用高级 Ansible 剧本条件来解析 json?
How to use advance Ansible playbook conditionals to parse json?
我正在尝试创建一个剧本,它使用 uri 模块在 ElasticSearch 中创建新的观察者任务。但是,当我将 运行 保持为错误时,我似乎在检查寄存器有效负载的条件上遇到了问题; "error while evaluating conditional: payload.contents.find("真") != -1"
从 uri 模块计算返回的 json 的正确方法是什么?
(顺便说一句,我 运行 这个剧本是通过 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', '...') 而不是变量
我正在尝试创建一个剧本,它使用 uri 模块在 ElasticSearch 中创建新的观察者任务。但是,当我将 运行 保持为错误时,我似乎在检查寄存器有效负载的条件上遇到了问题; "error while evaluating conditional: payload.contents.find("真") != -1"
从 uri 模块计算返回的 json 的正确方法是什么?
(顺便说一句,我 运行 这个剧本是通过 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', '...') 而不是变量