Existe uma maneira de executar apenas uma tarefa no manual ansible?
Por exemplo, em roles/hadoop_primary/tasks/hadoop_master.yml
. Eu tenho "start hadoop job tracker services"
tarefa. Posso apenas executar essa tarefa?
arquivo 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
Existe uma maneira, embora não seja muito 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)
y
Ctrl-C
fonte
--check
e-vvv
também é bastante útil. Na verdade, ele não executará o comando, mas fornecerá uma saída muito detalhada do que teria acontecido.FWIW com Ansible 2.2 pode-se usar include_role :
manual
test.yml
:então em
roles/test/tasks/other.yml
:E invoque o manual com:
ansible-playbook test.yml
para obter:fonte
Eu adoraria a capacidade de usar uma função como uma coleção de tarefas, para que, no meu manual, eu possa escolher qual subconjunto de tarefas executar. Infelizmente, o manual só pode carregá-los todos e, em seguida, você deve usar a
--tags
opção no cmdline para escolher quais tarefas executar. O problema é que todas as tarefas serão executadas, a menos que você lembre de definir--tags
ou--skip-tags
.Eu configurei algumas tarefas, no entanto, com uma
when:
cláusula que será acionada apenas se um var estiver definido.por exemplo
Agora, essa tarefa não será acionada por padrão, mas somente se eu definir o
stuff=true
ou em um manual:
fonte
você está familiarizado com manipuladores ? Eu acho que é o que você está procurando. Mova a reinicialização de
hadoop_master.yml
pararoles/hadoop_primary/handlers/main.yml
:e agora chame o uso
notify
emhadoop_master.yml
:fonte
Isso pode ser feito facilmente usando as tags
O exemplo de tags é definido abaixo:
para executar as tags, usamos o comando
fonte