airshipctl/roles/reverse-proxy/tasks/install.yaml

104 lines
2.8 KiB
YAML

- name: Install dependencies
include_tasks: dependencies.yaml
- name: Install apache2 package
apt:
name: apache2
state: present
become: true
- name: Disable default virtualhost
file:
path: /etc/apache2/sites-enabled/000-default.conf
state: absent
become: true
- name: Enable proxy related modules
apache2_module:
name: "{{ item }}"
state: present
with_items:
- headers
- proxy
- proxy_http
- rewrite
- ssl
become: true
- name: Generate private key for "{{ reverse_proxy_hostname }}"
openssl_privatekey:
path: /etc/ssl/private/{{ reverse_proxy_hostname }}-privkey.pem
become: true
- name: Generate CSR for "{{ reverse_proxy_hostname }}"
openssl_csr:
path: /tmp/{{ reverse_proxy_hostname }}.csr
privatekey_path: /etc/ssl/private/{{ reverse_proxy_hostname }}-privkey.pem
common_name: "{{ reverse_proxy_hostname }}"
subject_alt_name: "IP:{{ reverse_proxy_frontend_ip }}"
become: true
- name: Generate the self signed certificate for "{{ reverse_proxy_hostname }}"
openssl_certificate:
path: /etc/ssl/certs/{{ reverse_proxy_hostname }}-cert.pem
privatekey_path: /etc/ssl/private/{{ reverse_proxy_hostname }}-privkey.pem
csr_path: /tmp/{{ reverse_proxy_hostname }}.csr
provider: selfsigned
become: true
# TODO: Using dhparam can be good to have for HTTPS virtual host
# But it takes too much time to generate for each run.
# It can be enabled if necessary at a later point.
#- name: Generate Diffie-Hellman parameters with the default size (4096 bits)
# openssl_dhparam:
# path: /etc/ssl/certs/{{ reverse_proxy_hostname }}-dhparams.pem
- name: Remove older htpasswd file
file:
path: /etc/apache2/{{ reverse_proxy_hostname }}-passwd
state: absent
become: true
- name: Create username and password for basic authentication
htpasswd:
path: /etc/apache2/{{ reverse_proxy_hostname }}-passwd
name: "{{ reverse_proxy_username }}"
password: "{{ reverse_proxy_password }}"
become: true
- name: Add default virtual host
template:
src: etc/apache2/sites-available/000-default.conf.j2
dest: /etc/apache2/sites-available/000-default.conf
become: true
- name: Add ssl virtual host
template:
src: etc/apache2/sites-available/default-ssl.conf.j2
dest: /etc/apache2/sites-available/default-ssl.conf
become: true
- name: Add ssl configuration
template:
src: etc/apache2/conf-available/ssl-params.conf.j2
dest: /etc/apache2/conf-available/ssl-params.conf
become: true
- name: Enable default virtual host
command: a2ensite 000-default
become: true
- name: Enable ssl virtual host
command: a2ensite default-ssl
become: true
- name: Enable ssl configuration
command: a2enconf ssl-params
become: true
- name: Reload apache2 service
service:
name: apache2
state: reloaded
become: true