ansible task não aciona manipuladores

3

Estou tendo problemas para conseguir uma tarefa em uma função ansible para acionar manipuladores. Aqui estão os arquivos que estou usando:

roles/services/tasks/postgresql.yml mostra

- name: install postgresql packages
  apt: name={{ item }} state=present
  sudo: yes
  with_items:
  - postgresql
  - libpq-dev
  - python-psycopg2
  notify:
  - set postgres password
  - configure md5 security
  - restart postgres server

roles/services/handlers/main.yml mostra

- name: set postgres password 
  sudo: yes
  sudo_user: postgres
  postgresql_user: name=postgres password=newpass

- name: configure md5 security
  sudo: yes
  copy: src=pg_hba.conf dest=/etc/postgresql/9.3/main/pg_hba.conf group=postgres owner=postgres backup=yes

- name: restart postgres server
  sudo: yes
  service: name=postgresql enabled=yes state=restarted

Quando eu executo o manual, a tarefa é bem-sucedida e reconhece que ela mudou de estado, mas não aciona os manipuladores. Esta é a última tarefa nessa função e, quando isso é feito, ansible avança para a primeira tarefa na próxima função no meu manual:

TASK: [services | install postgresql packages] ******************************** 
changed: [IP.REMOVED.##] => (item=postgresql,libpq-dev,python-psycopg2)

TASK: [passenger | install passenger gem] ************************************* 

Eu tentei alterar o recuo de várias maneiras, sem sucesso. Espero que alguém com olhos frescos veja o que me falta.

    
por Alicia Cozine 21.06.2015 / 07:12

1 resposta

3

Você pode não estar esperando o tempo suficiente. Ansible esperará pelos manipuladores o maior tempo possível. Se você quiser fazer todos os manipuladores que já estão enfileirados, tente

 - meta: flush_handlers

que eu acho muito útil. Por exemplo, depois de instalar um pacote Debian, eu quero que ele mate os daemons, então eu adiciono o comando meta logo após a instalação do pacote e o ansible não me faz esperar.

    
por 21.06.2015 / 07:37

Tags