---
- name: Configure Apache.
  lineinfile:
    dest: "{{ apache_server_root }}/ports.conf"
    regexp: "{{ item.regexp }}"
    line: "{{ item.line }}"
    state: present
  with_items: "{{ apache_ports_configuration_items }}"
  notify: restart apache

- name: Enable Apache mods.
  file:
    src: "{{ apache_server_root }}/mods-available/{{ item }}"
    dest: "{{ apache_server_root }}/mods-enabled/{{ item }}"
    state: link
  with_items: "{{ apache_mods_enabled }}"
  notify: restart apache

- name: Disable Apache mods.
  file:
    path: "{{ apache_server_root }}/mods-enabled/{{ item }}"
    state: absent
  with_items: "{{ apache_mods_disabled }}"
  notify: restart apache

- name: Check whether certificates defined in vhosts exist.
  stat: "path={{ item.certificate_file }}"
  register: apache_ssl_certificates
  with_items: "{{ apache_vhosts_ssl }}"

- name: Add apache vhosts configuration.
  template:
    src: "vhosts.conf.j2"
    dest: "{{ apache_conf_path }}/sites-available/{{ apache_vhosts_filename }}"
    owner: root
    group: root
    mode: 0644
  notify: restart apache
  when: apache_create_vhosts

- name: Add vhost symlink in sites-enabled.
  file:
    src: "{{ apache_conf_path }}/sites-available/{{ apache_vhosts_filename }}"
    dest: "{{ apache_conf_path }}/sites-enabled/{{ apache_vhosts_filename }}"
    state: link
  notify: restart apache
  when: apache_create_vhosts

- name: Remove default vhost in sites-enabled.
  file:
    path: "{{ apache_conf_path }}/sites-enabled/{{ apache_default_vhost_filename }}"
    state: absent
  notify: restart apache
  when: apache_remove_default_vhost