Manipuladores: executando operações na mudança

Manipuladores: executando operações na mudança

É possível ter "tarefas posteriores" em uma função? ou seja, tarefas definidas em um papel, que seriam executadas no final da peça?

Por exemplo, tenho uma commonfunção da qual depende a maioria das outras funções. A commonfunção fornece algumas coisas básicas para evitar repetições, como ajustes na configuração do yum, etc.

eu reparei nissomanuais têmpost_tasks. Fiquei me perguntando se é possível definir tarefas posteriores nas próprias funções?


Atualizar: Citando oDocumentação Ansible:

Manipuladores: executando operações na mudança

...

Estas ações de 'notificação' são acionadas no final de cada bloco de tarefas num manual e só serão acionadas uma vez, mesmo se notificadas por múltiplas tarefas diferentes.

...

As funções são descritas mais adiante. Vale ressaltar que os manipuladores são processados ​​automaticamente entre as seções 'pre_tasks', 'roles', 'tasks' e 'post_tasks'.

...

Evidentemente, esta parte da documentação é enganosa ou mentirosa (= há um erro nela). Parece que os manipuladores são demitidosno final de cada peça, entre taskse post_tasks, como mostra este teste simples a seguir:

- name:         Handlers test
  hosts:        all
  gather_facts: no
  roles:
    - some-role
    # some-role depends on common
  tasks:
    - name:  This a task
      shell: /bin/true
  post_tasks:
    - name:  This is a post task
      shell: /bin/true

E o papel comum:

# tasks/main.yml

- name:   Registering handler
  shell:  /bin/true
  notify: this is a handler


#handlers/main.yml

- name:   this is a handler
  shell:  /bin/true

(Como ninguém respondeu, não posso aceitar, mas não me senti bem em responder minha própria pergunta com dicas dos comentários...)

Responder1

Esse comportamento é causado por um bug no Ansible 1.9.x, atualmente rastreado aqui:https://github.com/ansible/ansible/issues/12575

informação relacionada