Назад | Перейти на главную страницу

недоступная задача с тегом never внутри роли выполняется, когда роль выполняется с использованием другого тега

У меня есть сценарий, в котором есть три роли netdata, netdata_master, netdata_slaves:

---
- hosts: netdata_master
  become: yes
  roles: 
    - role: netdata
    - role: netdata_master
  tags: ['netdata_master']

- hosts: netdata_slaves
  become: yes
  roles:
    - role: netdata
    - role: netdata_slave
  tags: ['netdata_slave']

Внутри netdata роль У меня есть задача с тегом never и update_netdata для выполнения только при передаче тега update_netdata:

- name: Generating Netdata prebuilt script
  template:
    src: kickstart-static64.sh.j2
    dest: /tmp/kickstart-static64.sh
    mode: 0744
- name: update netdata
  shell: /opt/netdata/usr/libexec/netdata/netdata-updater.sh
  tags: ['never', 'update_netdata']

Проблема в том, что когда я запускаю доступную книгу без тегов, все работает нормально и update netdata не выполняется, но когда я запускаю доступную пьесу с netdata_slave тег, update netdata задача также выполняется.

Я использую ansible 2.9.2

Как я могу это исправить?

Вопрос: "Когда я запускаю ansible playbook с netdata_slave тег, update netdata задача также выполняется ".

A: Это работает, как ожидалось. Цитата из Наследование тегов:

Добавление тегов: к игре или к статически импортированным задачам и ролям добавляет эти теги ко всем содержащимся задачам.

Директива tags: ['netdata_slave'] добавляет этот тег ко всем содержащимся задачам из role: netdata

  roles:
    - role: netdata
  tags: ['netdata_slave']

Благодаря этому задача выглядит эффектно.

- name: update netdata
  shell: /opt/netdata/usr/libexec/netdata/netdata-updater.sh
  tags: ['never', 'update_netdata', 'netdata_slave']