Ansible通知处理程序with_items

时间:2017-09-12 08:07:17

标签: ansible ansible-handlers

我通过ansible为多个应用程序添加JAVA_OPTS作为环境变量,如果JAVA_OPTS发生更改,我想重新启动应用程序。

我现在拥有的是每个应用程序添加环境变量的任务,以及重启应用程序的通知,如:

public IHttpActionResult Post([FromBody]Batche model){

由于我有很多应用程序这样做,这意味着有很多任务。我想要的是使用- name: Add variable1 become: yes lineinfile: dest=/etc/environment regexp='^VARIABLE1=' line='VARIABLE1={{VARIABLE1}}' notify: restart application1 - name: restart application1 become: yes command: restart application1 来完成一个循环应用程序的任务。我无法弄清楚的是如何让一个处理程序任务重启。是否可以传递给处理程序哪个应用程序需要重启?类似的东西:

with_items

1 个答案:

答案 0 :(得分:4)

您可以通过注册值并在后续任务中循环它们来自己模拟处理程序功能(第二个任务可能会也可能不会被定义为处理程序):

- name: add variables
  lineinfile:
    dest: ./testfile
    regexp: '^{{item.app_name}}='
    line: '{{item.app_name}}={{ item.variable }}'
  register: add_variables
  with_items:
    - { variable: "FIRST", app_name: "APP1"}
    - { variable: "SECOND", app_name: "APP2"}
    - { variable: "THIRD", app_name: "APP3"}

- name: restart apps
  become: yes
  command: restart {{item.item.app_name}}
  when: item.changed
  with_items: "{{ add_variables.results }}"