2014-09-18 2 views
0

Хорошо, это моя задача:анзибль уведомить обработчик doen't выполнить

--- 
- name: copy source list 
    copy: src=sources.list dest=/etc/apt/sources.list 
    notify: update apt 

# - name: Update apt 
# shell: apt-get update 

- name: Install postgres 
    shell: apt-get install -q -y postgresql-9.1 
    #apt: name=postgresql-9.1 state=present 

- others tasks... 

Вот мой обработчик:

- name: update apt 
    action: apt-get update 

Когда я запускаю это не уведомляет.

... 

TASK: [postgresql | copy source list] ***************************************** 
changed: [host_slave2] 
changed: [host_slave1] 
changed: [host_pgpool] 
changed: [host_master] 

TASK: [postgresql | Install postgres] ***************************************** 
changed: [host_slave1] 
changed: [host_master] 
changed: [host_slave2] 
changed: [host_pgpool] 

... 

После копии мне нужно будет увидеть уведомление, что не так?

+1

уведомляют происходит в самом конце RUN- вы отменить или дайте ему поработать до конца? Я бы предложил увеличить многословие. Наконец, [apt * modules] (http://docs.ansible.com/list_of_packaging_modules.html) великолепны. – tedder42

ответ

-1

http://wherenow.org/ansible-handlers/

На самом деле этот вопрос необходимо форсировать реализацию

--- 
- name: copy source list 
    copy: src=sources.list dest=/etc/apt/sources.list 
    notify: update apt 

- meta: flush_handlers 


- name: Install postgres 
    shell: apt-get install -q -y postgresql-9.1 
    #apt: name=postgresql-9.1 state=present 

- others tasks... 

handler: 

- name: update apt 
    action: apt-get update 
1
--- 

- name: copy source list 
    copy: src=sources.list dest=/etc/apt/sources.list 
#http://docs.ansible.com/apt_repository_module.html 
    register: update_apt 

- name: Update apt 
    apt: update_cache=yes cache_valid_time=86400 
#http://docs.ansible.com/apt_module.html 
    when: update_apt is defined and update_apt.changed == True 

- name: Install postgres 
    shell: apt-get install -q -y postgresql-9.1 
    #apt: name=postgresql-9.1 state=present 

- others tasks... 
+0

Несмотря на то, что предложенный ответ будет работать, он не использует обработчики в соответствии с исходным вопросом. –

Смежные вопросы