Czy istnieje sposób na uruchomienie tylko jednego zadania w poradniku ansibli?
Na przykład w roles/hadoop_primary/tasks/hadoop_master.yml
. Mam "start hadoop job tracker services"
zadanie. Czy mogę po prostu uruchomić to jedno zadanie?
Plik hadoop_master.yml:
---
# Playbook for Hadoop master servers
- name: Install the namenode and jobtracker packages
apt: name={{item}} force=yes state=latest
with_items:
- hadoop-0.20-mapreduce-jobtracker
- hadoop-hdfs-namenode
- hadoop-doc
- hue-plugins
- name: start hadoop jobtracker services
service: name=hadoop-0.20-mapreduce-jobtracker state=started
tags:
debug
Jest sposób, choć niezbyt elegancki:
ansible-playbook roles/hadoop_primary/tasks/hadoop_master.yml --step --start-at-task='start hadoop jobtracker services'
Perform task: start hadoop jobtracker services (y/n/c)
y
Ctrl-C
źródło
--check
i-vvv
jest również całkiem przydatne. W rzeczywistości nie wykona polecenia, ale wyświetli bardzo szczegółowe informacje, co by się stało.FWIW z Ansible 2.2 można użyć funkcji include_role :
podręcznik
test.yml
:potem w
roles/test/tasks/other.yml
:I wywołaj podręcznik z:,
ansible-playbook test.yml
aby uzyskać:źródło
Bardzo chciałbym móc używać roli jako zbioru zadań, tak że w moim poradniku mogę wybrać podzbiór zadań do wykonania. Niestety, Playbook może tylko załadować je wszystkie, a następnie musisz użyć
--tags
opcji w linii cmd, aby wybrać zadania do uruchomienia. Problem polega na tym, że wszystkie zadania będą działać, chyba że pamiętasz o ustawieniu--tags
lub--skip-tags
.Skonfigurowałem jednak niektóre zadania z
when:
klauzulą, która będzie uruchamiana tylko wtedy, gdy ustawiona jest zmienna.na przykład
Teraz to zadanie nie będzie domyślnie uruchamiane, ale tylko wtedy, gdy ustawię
stuff=true
lub w poradniku:
źródło
czy znasz handlerów ? Myślę, że właśnie tego szukasz. Przenieś ponowne uruchomienie z
hadoop_master.yml
doroles/hadoop_primary/handlers/main.yml
:a teraz zadzwoń do użycia
notify
whadoop_master.yml
:źródło
Można to łatwo zrobić za pomocą tagów
Przykład tagów zdefiniowano poniżej:
do wykonania tagów używamy polecenia
źródło