

- name: rolling update dashboard
  hosts: monitoring_servers
  any_errors_fatal: true
  tags:
    - dashboard

  pre_tasks:
    - name: stop dashboard by supervise
      shell: cd {{ deploy_dir }}/scripts && ./stop_{{ item }}.sh
      with_items:
        - dashboard
      when: process_supervision == 'supervise'

    - name: stop dashboard by systemd
      systemd: name=dashboard-{{ dashboard_port }}.service state=stopped enabled=no
      become: true
      when: process_supervision == 'systemd'

    - name: wait for dashboard down
      wait_for: |
        host={{ ansible_host }} port={{ dashboard_port }} state=stopped

  roles:
    - dashboard

  post_tasks:
    - name: start dashboard by supervise
      shell: cd {{ deploy_dir }}/scripts && ./start_{{ item }}.sh
      when: process_supervision == 'supervise'
      with_items:
        - dashboard

    - name: start dashboard by systemd
      systemd: name=dashboard-{{ dashboard_port }}.service state=started enabled=no
      become: true
      when: process_supervision == 'systemd'

    - name: wait for dashboard up
      wait_for: |
        host={{ ansible_host }} port={{ dashboard_port }} state=present
