¿Hay alguna manera de ejecutar solo una tarea en el libro de jugadas ansible?
Por ejemplo, en roles/hadoop_primary/tasks/hadoop_master.yml. Tengo "start hadoop job tracker services"tarea ¿Puedo ejecutar esa única tarea?
archivo 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

Hay una manera, aunque no muy elegante:
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)yCtrl-Cfuente
--checky-vvvtambién es bastante útil. Realmente no ejecutará el comando pero le dará una salida muy detallada de lo que hubiera sucedido.FWIW con Ansible 2.2 se puede usar include_role :
libro de jugadas
test.yml:luego en
roles/test/tasks/other.yml:E invoque el libro de jugadas con:
ansible-playbook test.ymlpara obtener:fuente
Me encantaría poder usar un rol como una colección de tareas de modo que, en mi libro de jugadas, pueda elegir qué subconjunto de tareas ejecutar. Desafortunadamente, el libro de jugadas solo puede cargarlos todos y luego debe usar la
--tagsopción en la línea de cm para elegir qué tareas ejecutar. El problema con esto es que todas las tareas se ejecutarán a menos que recuerde configurar--tagso--skip-tags.Sin embargo, he configurado algunas tareas con una
when:cláusula que solo se activará si se establece una var.p.ej
Ahora, esta tarea no se activará de forma predeterminada, pero solo si configuro el
stuff=trueo en un libro de jugadas:
fuente
¿Estás familiarizado con los controladores ? Creo que es lo que estás buscando. Mueva el reinicio de
hadoop_master.ymlaroles/hadoop_primary/handlers/main.yml:y ahora llame al uso
notifyenhadoop_master.yml:fuente
Esto se puede hacer fácilmente usando las etiquetas
El ejemplo de etiquetas se define a continuación:
para ejecutar las etiquetas usamos el comando
fuente