--- - name: ensure the software is there # TODO: what does yum think about an empty list as the name parameter? yum: name: "{{ packages }}" state: latest - name: process any templates and publish them template: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: "{{ item.owner | default(omit) }}" group: "{{ item.group | default(omit) }}" mode: "{{ item.mode | default(omit) }}" notify: - test configuration validity - restart the service loop: "{{ configs }}" - name: deploy the static files as well copy: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: "{{ item.owner | default(omit) }}" group: "{{ item.group | default(omit) }}" mode: "{{ item.mode | default(omit) }}" notify: them handlerz loop: "{{ staticfiles }}" - name: execute handlers if necessary meta: flush_handlers - name: ensure the service is started and enabled to start automatically service: name: "{{ service }}" state: started enabled: yes when: service != None - name: ensure firewall is open for the service firewalld: service: "{{ fwsvc }}" state: enabled immediate: yes permanent: yes when: fwsvc != None ...