如何在YAML中使用变量作为键?

问题描述 投票:1回答:1

我想使用索引作为使用ansible生成docker节点标签的密钥。

我尝试了以下代码,但同样不替换索引值。

---

  - name: Assigning labels
    hosts: localhost
    connection: local
    gather_facts: no

    tasks:
    - name: Localhost label assignment
      docker_node:
        hostname: "{{ item }}"
        labels:
          "{{ idx }}": "true"
      with_items:
        - "{{ groups['target-machines'] }}"
      loop_control:
        index_var: idx

在成功完成剧本后,docker节点检查看起来像这样。

"Spec": {
            "Labels": {
                "{{ idx }}": "true",
            },
            "Role": "manager",
            "Availability": "active"
        },

但是我想要实现的目标是:

NODE:1

"Spec": {
            "Labels": {
                1: "true",
            },
            "Role": "manager",
            "Availability": "active"
        },

NODE:2

"Spec": {
            "Labels": {
                2: "true",
            },
            "Role": "manager",
            "Availability": "active"
        },

。 。 。 。等等。

docker ansible
1个回答
1
投票

展开索引。正确的语法是(如果你不需要它,没有%)

labels:
  "{{ idx }}": "true"
© www.soinside.com 2019 - 2024. All rights reserved.