我有一个用 YAML 语法定义的多维数组。这是 Ansible 使用的 group_vars 文件的一部分:
mirrors:
- name: "ubuntu"
dists:
- precise
- precise-backports
- precise-proposed
- precise-security
- precise-updates
frontend_uri: "/ubuntu"
package_pattern: "/ubuntu/pool"
sync_hour: 0
upstreams:
main: "nl.archive.ubuntu.com"
backups:
- "ubuntu.mirror.ac.ke"
- "ke.archive.ubuntu.com"
令我困扰的是 mirrors[0].frontend_uri
和 mirrors[0].package_pattern
可以从 mirrors[0].name< 中生成
,但要做到这一点,我需要以某种方式使用相对路径引用它们,因为我不想或多或少地将第一级 (0
) 的迭代器包含到路径中像这样:
mirrors:
- name: "ubuntu"
dists:
- precise
- precise-backports
- precise-proposed
- precise-security
- precise-updates
frontend_uri: "/{{ .name }}"
package_pattern: "/{{ .name }}/pool"
sync_hour: 0
upstreams:
main: "nl.archive.ubuntu.com"
backups:
- "ubuntu.mirror.ac.ke"
- "ke.archive.ubuntu.com"
有什么方法可以使用相对路径来引用多维数组的其他部分吗?
最佳答案
这会起作用: *name 是一个 yamlism,它允许使用定义的别名 & 其余的只是使用未在同一棵树中定义的变量引用。
_name: &name "ubuntu"
- name: *name
dists:
- precise
- precise-backports
- precise-proposed
- precise-security
- precise-updates
frontend_uri: "/{{ _name }}"
package_pattern: "/{{ _name }}/pool"
sync_hour: 0
upstreams:
main: "nl.archive.ubuntu.com"
backups:
- "ubuntu.mirror.ac.ke"
- "ke.archive.ubuntu.com"
关于yaml - 在 Ansible-YAML 中使用相对路径引用多维数组中的另一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989401/