ansible 在多个节点上运行一系列任务

ansible 在多个节点上运行一系列任务

我有一个 ansible 剧本,大致如下:

    - hosts: firstNode
      tasks:
      - name: create cluster
        shell: "cluster create command"

    - hosts: otherNodes
      serial: 1
      tasks:
      - name: joining cluster
        shell: "cluster join command"

firstNode始终是单个主机,但otherNodes可以是任意数字。每个命令都按顺序执行很重要。我现在想在每个命令之前和之后插入一个作业,join command以确保一切正常,因此对于 3 节点集群,顺序将是按顺序执行以下作业

  1. 主机 1-创建集群
  2. 主机 2-检查集群状态
  3. 主机 2-加入集群
  4. 主机 2-检查节点状态
  5. 主机 3-检查集群状态
  6. 主机 3-加入集群
  7. 主机 3-检查节点状态

使用 ansible 可以实现这个吗?

答案1

只需将您的命令添加到任务块即可:

- hosts: firstNode
  tasks:
  - name: create cluster
    shell: "cluster create command"

- hosts: otherNodes
  serial: 1
  tasks:
  - name: check cluster
    shell: "check cluster command"

  - name: joining cluster
    shell: "cluster join command"

  - name: check node
    shell: "check node command"

相关内容