- name: install rsync (so one can publish files via server) apt: name: rsync - name: install apache2 apt: name=apache2 - name: create dirs for static site contents file: state: directory path: "/srv/http/{{ item.domain }}" owner: "{{ item.owner }}" group: "{{ item.owner }}" mode: 0755 with_items: "{{ static_sites }}" - name: create log dirs for websites file: state: directory path: "/var/log/apache2/{{ item.domain }}" owner: www-data group: www-data mode: 0755 with_items: "{{ static_sites }}" - name: configure apache to serve static sites template: src: virtualhost.conf.tmpl dest: "/etc/apache2/sites-available/{{ item.domain }}.conf" owner: root group: root mode: 0644 with_items: "{{ static_sites }}" - name: "install htpasswd files" copy: content: "{{ item.htpasswd }}" dest: "/srv/http/{{ item.domain }}.htpasswd" owner: root group: root mode: 0644 with_items: "{{ static_sites }}" when: item.htpasswd is defined - name: enable apache sites shell: a2ensite "{{ item.domain }}" with_items: "{{ static_sites }}" notify: - restart apache