如何使用Ansible为docker swarm集群的节点部分分配标签?

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

我有一个3节点泊坞群集(swarm),并希望为节点分配标签。我目前正在进行节点的节点是节点1,应该为其分配标签abc1。其他2个节点应分配abc2和abc3。

我已经尝试过在https://docs.ansible.com/ansible/devel/modules/docker_node_module.html中给出的示例,但似乎得到了YAML语法错误。

我的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文件并分配标签?

docker ansible docker-swarm
1个回答
3
投票

该模块在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
© www.soinside.com 2019 - 2024. All rights reserved.