在Ansible中处理具有不同属性的项的一种解决方法是使用字典数据结构,并在变量文件中定义这些字典。
以下是一个示例的解决方法:
# vars.yml
items:
- name: item1
attribute1: value1
attribute2: value2
- name: item2
attribute1: value3
attribute2: value4
with_items
循环遍历字典中的项。例如:# playbook.yml
- name: Example playbook
hosts: localhost
vars_files:
- vars.yml
tasks:
- name: Print item attributes
debug:
msg: "Item {{ item.name }} attributes - attribute1: {{ item.attribute1 }}, attribute2: {{ item.attribute2 }}"
with_items: "{{ items }}"
在上述示例中,items
是在变量文件中定义的字典。with_items
循环遍历字典中的每个项,并在每次循环中使用item
变量访问项的属性。
运行这个Playbook,你将会看到类似以下的输出:
TASK [Print item attributes] ***************************************************
ok: [localhost] => (item={'name': 'item1', 'attribute1': 'value1', 'attribute2': 'value2'}) => {
"msg": "Item item1 attributes - attribute1: value1, attribute2: value2"
}
ok: [localhost] => (item={'name': 'item2', 'attribute1': 'value3', 'attribute2': 'value4'}) => {
"msg": "Item item2 attributes - attribute1: value3, attribute2: value4"
}
这个示例展示了如何使用字典数据结构和循环遍历来处理具有不同属性的项。你可以根据你的实际需求对字典中的项和属性进行调整。