Как использовать переменную в качестве ключа в YAML? \ - PullRequest
1 голос
/ 29 апреля 2019

Я хочу использовать индекс в качестве ключа для генерации метки узла докера с использованием ansible.

Я пробовал следующий код, но он не заменяет значение индекса.

---

  - 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 Ответ

1 голос
/ 29 апреля 2019

Расширить индекс.Правильный синтаксис (без % , если он вам не нужен)

labels:
  "{{ idx }}": "true"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...