【问题标题】:Ansible runs all dependency role even specifying specific tagsAnsible 运行所有依赖角色,甚至指定特定标签
【发布时间】:2017-02-12 23:58:20
【问题描述】:

Ansible 执行所有依赖角色,但我在 meta 文件夹中的 main.yml 如下所示:

---
dependencies:
   - { role: common, caller_role: docker, tags: ['packages'] }

因此,ansible 应该执行包含以下内容的角色 common 部分:

---

- name: Install required packages
  package: name={{ item.name }} state=present
  with_items:
    - "{{ vars[caller_role]['SYSTEM']['PACKAGES'] }}"
  tags:
    - packages

- name: Modify /etc/hosts
  lineinfile:
    dest: /etc/hosts
    line: "{{ vars[caller_role]['REGISTRY']['ip'] }} {{ vars[caller_role]['REGISTRY']['hostname']}}"
  tags:
    - write_etc_hosts

我执行 ansible 2.1.1.0 如下:ansible-playbook --list-tags site.yml 在这里我正在复制 site.yml:

- hosts: localhost
  connection: local
  remote_user: root
  become: yes
  roles:
    - docker

最后是树:

├── common
│   ├── defaults
│   │   └── main.yml
│   ├── files
│   ├── handlers
│   │   └── main.yml
│   ├── meta
│   │   └── main.yml
│   ├── README.md
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   ├── tests
│   │   ├── inventory
│   │   └── test.yml
│   └── vars
│       └── main.yml
├── docker
│   ├── defaults
│   │   └── main.yml
│   ├── files
│   ├── handlers
│   │   └── main.yml
│   ├── meta
│   │   └── main.yml
│   ├── README.md
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   ├── tests
│   │   ├── inventory
│   │   └── test.yml
│   └── vars
│       └── main.yml
└── site.yml

我不明白发生了什么..

【问题讨论】:

    标签: ansible ansible-playbook


    【解决方案1】:

    如果您为角色指定标签,Ansible 会将它们应用于该角色中的每个任务
    在您的示例中,标签packages 将添加到角色common 中的每个任务中。

    请检查文档中的tag inheritance 部分。

    您可以将标签应用于多个任务,但它们只会影响任务本身。在其他任何地方应用标签只是一种方便所以你不必在每个任务上都写它

    所有这些[示例]都将指定的标签应用于剧本、包含文件或角色中的每个任务,以便在使用相应标签调用剧本时可以选择性地运行这些任务。

    【讨论】:

      【解决方案2】:

      好的,谢谢康斯坦丁。为此,我想我会使用:

      - include: foo.yml
        tags: [web,foo]
      

      问候

      【讨论】:

      • 这仍然会将webfoo 标签附加到foo.yml 中的每个任务...
      猜你喜欢
      • 2019-01-14
      • 2017-02-21
      • 2019-12-16
      • 2018-03-29
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多