来自任务变量的ansible调用处理程序

时间:2015-09-11 17:59:18

标签: linux automation ansible ansible-playbook

我想为主管创建一个conf文件,并在创建文件后重新读取"重读"由主管和一个处理程序。

我的任务:

- name: add supervised conf
  sudo: yes
  template: src=default.conf.j2 dest="/etc/supervisor/conf.d/{{item.name}}.conf"
  with_items: "{{supervisorConfs}}"
  notify:
    - task with variable

我的经纪人:

- name: task with variable
  debug: "{{item}}"

任何想法如何完成?

1 个答案:

答案 0 :(得分:1)

你不能直接做 - 处理程序不接受args。但是,您可以通过从模板循环注册输出来模拟所需的行为,然后让处理程序循环存储在该var中的结果,并仅对更改的结果进行操作。最终结果是一样的。它看起来像是:

tasks:
  template: src=default.conf.j2 dest="/etc/supervisor/conf.d/{{item.name}}.conf"
  with_items: "{{supervisorConfs}}"
  register: template_out
  notify:
    - my_handler

...

handlers:
- name: my_handler
  debug: msg="{{ item }}"
  with_items: "{{ template_out.results | selectattr('changed', 'equalto', true) | list }}"