我需要使用ansible来完成以下工作:
1.将Http Post请求发送到WebApi
2.检查响应是否符合要求,否则从响应中提取一些数据
3.发送另一个Http Post请求,其正文中填充了步骤2中获得的数据
4.将步骤1循环到步骤3,直到响应符合要求
我的代码如下,但是没有用。
finished_res
模块中的uri
似乎永远都没有定义。
我的意思是是finished_res
模块中的变量uri
似乎永远不会改变,因为我在服务器中不断收到相同的请求正文。但是,循环之外的finished_res
有效,我可以看到调试消息。
- hosts: all remote_user: ubuntu gather_facts: no vars: default_job_list: "xxx,yyy,zzz,aaa,bbb" tasks: - name: test is jobs finish uri: url: "{{ API_URL }}" method: POST body: "{% if finished_res is defined %}{{ finished_res.json.remainingJobs }}{% else %}{{ default_job_list }}{% endif %}" return_content: yes register: finished_res changed_when: True until: finished_res is defined and finished_res.json is defined and finished_res.json.status is defined and finished_res.json.status != "FALSE" - set_fact: RES: "{{ finished_res }}" - debug: msg="{{ RES }}"
有人可以帮助我吗?预先感谢!
答案 0 :(得分:0)
最后,我用另一种方式解决了这个问题:创建一个新的ansible模块