Есть ли способ запустить только одну задачу в ANSIBLE PlayBook?
Например, в roles/hadoop_primary/tasks/hadoop_master.yml
. У меня есть "start hadoop job tracker services"
задача. Могу ли я просто выполнить эту задачу?
Файл 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
Есть способ, хотя и не очень элегантный
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
источник
--check
и-vvv
вариант также весьма полезно. На самом деле он не выполнит команду, но даст очень подробный вывод о том, что произошло бы.FWIW с Ansible 2.2 можно использовать include_role :
playbook
test.yml
:затем в
roles/test/tasks/other.yml
:И вызвать playbook с помощью:
ansible-playbook test.yml
чтобы получить:источник
Мне бы хотелось иметь возможность использовать роль в качестве набора задач, чтобы в моем сборнике пьес я мог выбирать, какое подмножество задач запускать. К сожалению, playbook может загружать только их все вместе, и тогда вам нужно использовать
--tags
опцию в cmdline, чтобы выбрать, какие задачи запускать. Проблема в том, что все задачи будут выполняться, если вы не забудете установить--tags
или--skip-tags
.Однако я поставил несколько задач с
when:
предложением, которое будет запускаться только при установке переменной var.например
Теперь эта задача не будет запускаться по умолчанию, но только если я установлю
stuff=true
или в сборнике пьес:
источник
Вы знакомы с обработчиками ? Я думаю, это то, что вы ищете. Переместите перезапуск из
hadoop_master.yml
вroles/hadoop_primary/handlers/main.yml
:и теперь вызовите использование
notify
вhadoop_master.yml
:источник
Это легко сделать с помощью тегов
Пример тегов определен ниже:
для выполнения тегов мы используем команду
источник