У меня есть сценарий, в котором есть три роли 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']