在Ansible中,可以使用with_items
和loop
来处理多个变量值。
下面是一个示例代码:
- name: Include multiple values in a variable
hosts: localhost
gather_facts: false
vars:
fruits:
- apple
- banana
- orange
colors:
- red
- green
- blue
tasks:
- name: Print fruits and colors
debug:
msg: "Fruit: {{ item.0 }}, Color: {{ item.1 }}"
loop: "{{ fruits|product(colors)|list }}"
在上面的代码中,我们定义了两个变量fruits
和colors
,每个变量包含多个值。然后使用product
过滤器将两个变量的值进行组合,使用loop
来循环遍历每个组合的值。
输出结果如下:
TASK [Print fruits and colors] *************************************************************************************
ok: [localhost] => (item=['apple', 'red']) => {
"msg": "Fruit: apple, Color: red"
}
ok: [localhost] => (item=['apple', 'green']) => {
"msg": "Fruit: apple, Color: green"
}
ok: [localhost] => (item=['apple', 'blue']) => {
"msg": "Fruit: apple, Color: blue"
}
ok: [localhost] => (item=['banana', 'red']) => {
"msg": "Fruit: banana, Color: red"
}
ok: [localhost] => (item=['banana', 'green']) => {
"msg": "Fruit: banana, Color: green"
}
ok: [localhost] => (item=['banana', 'blue']) => {
"msg": "Fruit: banana, Color: blue"
}
ok: [localhost] => (item=['orange', 'red']) => {
"msg": "Fruit: orange, Color: red"
}
ok: [localhost] => (item=['orange', 'green']) => {
"msg": "Fruit: orange, Color: green"
}
ok: [localhost] => (item=['orange', 'blue']) => {
"msg": "Fruit: orange, Color: blue"
}
以上示例代码中,使用了product
过滤器将fruits
和colors
的值进行组合,并使用loop
循环遍历每个组合的值。然后,通过debug
模块打印每个组合的值。
希望以上解决方法能够满足您的需求。