Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 循环期间模块执行的Ansible更新变量_Loops_Ansible - Fatal编程技术网

Loops 循环期间模块执行的Ansible更新变量

Loops 循环期间模块执行的Ansible更新变量,loops,ansible,Loops,Ansible,我需要使用ansible完成以下工作: 1.向WebApi发送Http Post reuqest 2.检查响应是否满足要求,否则从响应中提取一些数据 3.发送另一个Http Post请求,其正文中填充了在步骤2中获得的数据 4.循环步骤1到步骤3,直到响应满足要求 我的代码如下所示,但它不起作用。finished_res在uri模块中似乎永远没有定义。我的意思是,uri模块中的变量finished_res似乎永远不会更改,因为我一直在服务器中接收相同的请求体。然而,当finished\u res

我需要使用ansible完成以下工作:
1.向WebApi发送Http Post reuqest
2.检查响应是否满足要求,否则从响应中提取一些数据
3.发送另一个Http Post请求,其正文中填充了在步骤2中获得的数据
4.循环步骤1到步骤3,直到响应满足要求

我的代码如下所示,但它不起作用。

finished_res
uri
模块中似乎永远没有定义。
我的意思是,
uri
模块中的变量
finished_res
似乎永远不会更改,因为我一直在服务器中接收相同的请求体。然而,当
finished\u 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 }}" -主持人:全部 远程用户:ubuntu 收集事实:不 变量: 默认作业列表:“xxx、yyy、zzz、aaa、bbb” 任务: -名称:测试作业已完成 uri: url:“{API_url}}” 方法:邮寄 正文:“{if finished_res is defined%}{{finished_res.json.remainingJobs}{%else%}{{{default_job_list}}{%endif%}” 返回内容:是 寄存器:已完成 更改时间:True 直到:finished_res已定义且finished_res.json已定义且finished_res.json.status已定义且finished_res.json.status!=“假” -设定事实: RES:“{{finished_RES}}” -调试:msg=“{RES}}”
有人能帮我吗?提前谢谢

最后,我用另一种方法解决了这个问题:创建一个新的ansible模块