【发布时间】:2019-08-11 20:07:05
【问题描述】:
如何在不硬编码磁盘数量的同时覆盖磁盘属性?
这是我希望它(该角色的 tasks/main.yml)执行的操作,但它因语法错误而失败,并且还需要对磁盘数量进行硬编码:
---
- name: anchors
when: false
debug:
new_disk:
- &new_disk
size_gb: 80
type: thin
datastore: '{{ item.datastore }}'
- name: Deploy usage001 vms
loop: '{{ vms.usage001 }}
vmware_guest:
disk:
- <<: *new_disk
- <<: *new_disk
'{{ item.disk[0] }}'
- <<: *new_disk
'{{ item.disk[1] }}
项目的外观:
vms:
usage001:
disk:
- size_gb: 1000
- size_gb: 600
usage002:
(...)
【问题讨论】:
-
看起来这在 ansible 中是不可能的。我得到了这个解决方法:gist.github.com/agaffney/fe154d6045487c3019c48d6de6e7b179 Tl;Dr: 使用 yaml 块 jinja2 替换发生在该字符串内部,然后使用另一个 jinja2 语句使用
from_yaml过滤器插入 yaml 字符串。