Теги

В трюке про Taskfile была упомянута команда task run -- tag1. В этой главе я покажу, что нужно, чтобы эта команда заработала.

На самом деле всё довольно просто. Рассмотрим пример проекта:

.
├── inventory
├── main.yml
└── roles
    ├── myrole1
    │   └── tasks
    │       └── main.yml
    ├── myrole2
    │   └── tasks
    │       └── main.yml
    └── myrole3
        └── tasks
            └── main.yml

В главном плейбуке main.yml перечисляются роли и к каждой роли подписывается набор тегов:

---
- name: Deploy
  hosts: all
  become: true
  roles:
    - { role: myrole1, tags: [foo, init] }
    - { role: myrole2, tags: [bar, init] }
    - { role: myrole3, tags: [buz] }

Я использую теги двумя способами и в этом суть этого трюка:

  • когда нужно запустить конкретную роль task run -- foo или task run -- bar
  • когда нужно запустить серию плейбуков на какой-то группе хостов tas run -- init