【问题标题】:Run only tasks with a certain tag or untagged仅运行具有特定标记或未标记的任务
【发布时间】:2020-06-05 22:28:59
【问题描述】:

在这个剧本中:

- hosts: all
  tasks:

  - name: task A
    debug: msg="task A"
    tags:
       - A

  - name: task B
    debug: msg="task B"
    tags:
       - B

  - name: untagged task
    debug: msg="untagged task"

我想运行带有标签A 的任务和未标记的任务。

我知道--skip-tags 选项,但这是一个简化的示例。 我的用例是一个非常复杂的剧本,其中包含许多标签和角色,任务具有不同的标签,以及标记和非标记任务之间的相互依赖关系。长话短说,对我来说唯一的“干净”选项是只运行指定的标签和未加标签的标签。

有没有办法调用ansible-playbook 以便它只运行特定的标签和未加标签的任务? 我正在使用 ansible 2.9.6

【问题讨论】:

    标签: ansible


    【解决方案1】:

    这确实是可能的:

    例如,如果您只想运行“配置”并 很长的剧本的“包”部分,您可以使用 --tags 选项 在命令行上:

    ansible-playbook example.yml --tags "configuration,packages"

    来源:https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#tags

    随着:

    标签还有另外 3 个特殊关键字:taggeduntaggedall,分别只运行标记、未标记和所有任务。

    来源:https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#special-tags

    所以你的解决方案是:

    ansible-playbook --tags "untagged,A" playbook.yml
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多