kiedy klauzula nie może ocenić obecności tagów. Aby obejść ten problem, używam zmiennych i tagów razem do uruchamiania zadań specyficznych dla tej zmiennej / tagu.
Przykład: Wyobraź sobie podręcznik i ekwipunek
# Inwentarz
[dev]
192.168.1.1
# site.yml
- gospodarze: dev
role:
- {rola: wspólna}
i we wspólnym / task / main.yml
# role / common / tasks / main.yaml
- nazwa: zainstaluj linki
apt: name = links state = present
- obejmują: uninstall.yml
kiedy zdefiniowano: uninstall_links
tagi:
- odinstaluj
# role / common / tasks / uninstall.yml
- nazwa: odinstaluj łącza
apt: name = links state = nieobecny
Przy takim podejściu używasz znacznika, aby wybrać tylko zadania w uninstall.yml, ale musisz również ustawić zmienną „uninstall_links” na coś, aby ją włączyć. Jeśli więc uruchomisz playbook bez żadnych parametrów, domyślnie uruchomi się zadanie instalacji. Aby odinstalować, możesz ustawić znacznik „odinstaluj” w swoim playbooku (lub cmdline) i MUSISZ ustawić zmienną. Jeśli nie ustawisz tagu, uruchomi on wszystko (zainstaluje i odinstaluje) w tej kolejności, co jest dobre do przetestowania całego procesu.
Jak uruchomić wszystko (zainstaluje się i odinstaluje):
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true"
Jak uruchomić tylko tag „odinstaluj” w grupie programistów
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true" -t uninstall
Dlatego zmienne i tagi mogą również znajdować się w plikach site.yml / inventory, umożliwiając zatwierdzenie w SCM i zarejestrowanie zamiaru.