使用Loop_var Ansible循环多个var
我需要在URI模块中有一个循环,它可以一次性同时运行一个任务。我尝试过下面的示例,但它不起作用,因为只考虑最后一个值:使用Loop_var Ansible循环多个var,ansible,uri,Ansible,Uri,我需要在URI模块中有一个循环,它可以一次性同时运行一个任务。我尝试过下面的示例,但它不起作用,因为只考虑最后一个值: - uri: method: PATCH url: https://10.10.10.10/api/xyz status_code: 200, 201 force_basic_auth: yes user: user password: pass return_content: yes
- uri:
method: PATCH
url: https://10.10.10.10/api/xyz
status_code: 200, 201
force_basic_auth: yes
user: user
password: pass
return_content: yes
validate_certs: no
body_format: "json"
body:
replace:
data:
- enabled: "{{ x.enabled }}"
if_name: "{{ x.name }}"
- enabled: "{{ y.enabled }}"
if_name: "{{ y.name }}"
loop: "{{ vm.params | default([]) | flatten(levels=1) }}"
loop_control:
loop_var: x
loop_var: y
是否有任何方法可以通过loop、loop\u control和loop\u var实现这一点,或者将其与其他模块结合使用,而这些模块在将来不会被弃用
site.yml -
---
- hosts:
tasks:
- include_tasks: main.yml
with_items:
- "{{ vm.params | default([]) | flatten(levels=1) }}"
loop_control:
loop_var: x
main.yml -
---
- uri:
method: PATCH
url: https://10.10.10.10/api/xyz
status_code: 200, 201
force_basic_auth: yes
user: user
password: pass
return_content: yes
validate_certs: no
body_format: "json"
body:
replace:
data:
- enabled: "{{ x.enabled }}"
if_name: "{{ x.name }}"
I'm not using the 'y' variable in here as that is not possible based on the code you put on.
site.yml-
---
-主持人:
任务:
-包含任务:main.yml
有以下项目:
-“{vm.params | default([])| flatte(levels=1)}”
回路控制:
循环变量:x
main.yml-
---
-uri:
方法:贴片法
网址:https://10.10.10.10/api/xyz
状态代码:200201
强制基本授权:是
用户:用户
密码:pass
返回内容:是
验证证书:否
正文格式:“json”
正文:
替换:
数据:
-已启用:“{x.enabled}”
if_name:“{x.name}”
我在这里没有使用“y”变量,因为根据您所使用的代码,这是不可能的。