ansible 在数组中使用循环
ansible Using loop in array
我在 vars 文件中有多个数组,我必须创建多个路径
每个 client 必须有 prod 和 preprod 路径
你能帮我在多个数组中设置多个循环吗?
对于“client”循环,它正在工作,但我不知道如何设置第二个循环数组“dev”
vars.yml
client:
- a
- b
env:
- prod
- preprod
main.yml:
- name: This command will enable secret with specified path
ansible.builtin.shell:
cmd: vault secrets enable "{{enable_version2}}" -path="{{item}}_{{projet}}_{{service}}_{{env}}_{{read}}" "{{secrets_type }}"
with_items: "{{client}}"
loop: "{{client}}"
谢谢
简而言之:
---
- hosts: localhost
gather_facts: false
vars:
client:
- a
- b
env:
- prod
- preprod
project: toto
service: pipo
read: bingo
tasks:
- name: create my path
debug:
msg: "{{ item.0 }}_{{ project }}_{{ service }}_{{ item.1 }}_{{ read }}"
loop: "{{ client | product(env) | list }}"
给出:
TASK [create my path] *****************************************************************************
ok: [localhost] => (item=['a', 'prod']) => {
"msg": "a_toto_pipo_prod_bingo"
}
ok: [localhost] => (item=['a', 'preprod']) => {
"msg": "a_toto_pipo_preprod_bingo"
}
ok: [localhost] => (item=['b', 'prod']) => {
"msg": "b_toto_pipo_prod_bingo"
}
ok: [localhost] => (item=['b', 'preprod']) => {
"msg": "b_toto_pipo_preprod_bingo"
}
PLAY RECAP *****************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
我在 vars 文件中有多个数组,我必须创建多个路径 每个 client 必须有 prod 和 preprod 路径 你能帮我在多个数组中设置多个循环吗? 对于“client”循环,它正在工作,但我不知道如何设置第二个循环数组“dev”
vars.yml
client:
- a
- b
env:
- prod
- preprod
main.yml:
- name: This command will enable secret with specified path
ansible.builtin.shell:
cmd: vault secrets enable "{{enable_version2}}" -path="{{item}}_{{projet}}_{{service}}_{{env}}_{{read}}" "{{secrets_type }}"
with_items: "{{client}}"
loop: "{{client}}"
谢谢
简而言之:
---
- hosts: localhost
gather_facts: false
vars:
client:
- a
- b
env:
- prod
- preprod
project: toto
service: pipo
read: bingo
tasks:
- name: create my path
debug:
msg: "{{ item.0 }}_{{ project }}_{{ service }}_{{ item.1 }}_{{ read }}"
loop: "{{ client | product(env) | list }}"
给出:
TASK [create my path] *****************************************************************************
ok: [localhost] => (item=['a', 'prod']) => {
"msg": "a_toto_pipo_prod_bingo"
}
ok: [localhost] => (item=['a', 'preprod']) => {
"msg": "a_toto_pipo_preprod_bingo"
}
ok: [localhost] => (item=['b', 'prod']) => {
"msg": "b_toto_pipo_prod_bingo"
}
ok: [localhost] => (item=['b', 'preprod']) => {
"msg": "b_toto_pipo_preprod_bingo"
}
PLAY RECAP *****************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0