коли пункт не може оцінити наявність тегів. Як вирішення, я використовую змінні та теги разом, щоб виконувати завдання, характерні для цього тегу / змінної.
Наприклад: Уявіть собі іграшку та інвентар
# інвентар
[dev]
192.168.1.1
# site.yml
- господарі: дев
ролі:
- {роль: загальний}
і спільне / завдання / main.yml
# ролі / загальні / завдання / main.yaml
- ім'я: Встановити посилання
apt: name = посилання, стан = присутні
- включати: uninstall.yml
коли: визначено uninstall_links
теги:
- видалити
# ролі / загальні / завдання / uninstall.yml
- ім'я: видалення посилань
apt: name = посилання, стан = відсутні
При такому підході ви використовуєте тег для вибору лише завдань у uninstall.yml, але вам також потрібно встановити змінну 'uninstall_links', щоб увімкнути її. Тож якщо ви запускаєте книгу без будь-яких параметрів, вона за замовчуванням виконає завдання встановлення. Щоб видалити, ви можете встановити тег "видалити" у вашій програмі (або cmdline) та ОБОВ'ЯЗКИ встановити змінну. Якщо ви не встановите тег, він запустить усе (встановлення та видалення) у такому порядку, що добре перевірити весь процес.
Як запустити все (це встановить і видалить):
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true"
Як запустити лише тег "видалення" для групи розробників
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true" -t uninstall
Тому змінні та теги також можуть бути у файлах site.yml / інвентаризації, що дозволяє вам взяти участь у вашому SCM та записати свій намір.