Как назначить метку узлам части Docker Swarm Cluster с помощью Ansible? - PullRequest
1 голос
/ 29 апреля 2019

У меня есть док-кластер с 3 узлами (рой), и я хочу, чтобы узлам были назначены метки. Узел, к которому я сейчас подключен, это узел 1, и ему должна быть назначена метка abc1. 2 другим узлам должны быть назначены abc2 и abc3.

Я пробовал примеры, приведенные в https://docs.ansible.com/ansible/devel/modules/docker_node_module.html, но, похоже, получена ошибка синтаксиса YAML.

Мой Ямл:

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

    tasks:
      - name: Localhost label assignment
        docker_node:
          hostname: vm-test
          label:
            abc1: true

Ошибка:

The offending line appears to be:

    tasks:
      - name: Localhost label assignment
        ^ here

Имея то, что у меня есть, он назначит метку только узлу 1. Как назначить инкрементальные метки для узла 2, а для узла 3 - abc2 и abc3 соответственно?

Файл hosts выглядит так:

[target-machines]
10.xx.xx.xx ansible_sudo_pass=xyz ansible_ssh_pass=xyz ansible_ssh_user=xyz
10.xx.xx.xx ansible_sudo_pass=abc ansible_ssh_pass=abc ansible_ssh_user=abc

Есть ли способ, которым я могу перебрать файл hosts и назначить метки?

1 Ответ

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

Этот модуль введен в ansible 2.8. Обновите Ansible до 2.8, и ошибка исчезнет.
pip install ansible==2.8.0rc1

Хеш параметра labels не метка.

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

  tasks:
    - name: Merge node labels and new labels
      docker_node:
        hostname: vm-test
        labels:
          abc1: true
...