按特定顺序调用 Ansible 标签

按特定顺序调用 Ansible 标签

我有一个 Ansible 工作,需要调用多个 Shell 脚本,并且每个 Shell 脚本都有自己的标签。

所以,我总共有 5 个脚本,有 5 个标签。

我的标签 1 和标签 2 是第一个必须删除的标签,然后只有运行接下来的 3 个标签才有意义。如果有人直接运行标签 3,我希望管道失败。如何为标签 3,4 和 5 添加标签 1 和 2 必须首先运行的依赖项。

请指教。

我现在的.yml文件是这样的。

- name: Task 1
      shell: "/tmp/1.sh -a {{ IN.1}} -b {{ IN.2 }}"
      register: Task1.sh
      tags: task1
- name: Task 2
      shell: "/tmp/2.sh -a {{ IN.2}} -b {{ IN.2 }}"
      register: Task2.sh
      tags: task2
.
.
.
.
- name: Task 5
      shell: "/tmp/5.sh -a {{ IN.1}} -b {{ IN.2 }}"
      register: Task5.sh
      tags: task5

答案1

一个粗略但百分百的解决方案是添加命令来运行任务中的第一个脚本,而不是绑定到任务和标签:

- name: Task 5
      shell: |
        /tmp/1.sh -a {{ IN.1}} -b {{ IN.2 }}
        /tmp/2.sh -a {{ IN.2}} -b {{ IN.2 }}
        /tmp/5.sh -a {{ IN.1}} -b {{ IN.2 }}
      register: Task5.sh
      tags: task5

相关内容