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

时间:2019-04-29 11:04:12

标签: docker ansible

我想使用索引作为使用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

成功完成剧本后,泊坞窗节点检查如下所示。

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

但是我想要实现的是:

节点:1

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

节点:2

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

。 。 。 。等等。

1 个答案:

答案 0 :(得分:1)

展开索引。正确的语法是(如果不需要,无需

labels:
  "{{ idx }}": "true"