|
|
|
---
|
|
|
|
|
|
|
|
- name: Determine domains to obtain certificates for (Matrix)
|
|
|
|
set_fact:
|
|
|
|
domains_to_obtain_certificate_for: "['{{ hostname_matrix }}']"
|
|
|
|
|
|
|
|
- name: Determine domains to obtain certificates for (Riot)
|
|
|
|
set_fact:
|
|
|
|
domains_to_obtain_certificate_for: "{{ domains_to_obtain_certificate_for + [hostname_riot] }}"
|
|
|
|
when: matrix_riot_web_enabled
|
|
|
|
|
|
|
|
- name: Allow access to HTTP/HTTPS in firewalld
|
|
|
|
firewalld:
|
|
|
|
service: "{{ item }}"
|
|
|
|
state: enabled
|
|
|
|
immediate: yes
|
|
|
|
permanent: yes
|
|
|
|
with_items:
|
|
|
|
- http
|
|
|
|
- https
|
|
|
|
when: ansible_os_family == 'RedHat'
|
|
|
|
|
|
|
|
- name: Ensure certbot Docker image is pulled
|
|
|
|
docker_image:
|
|
|
|
name: "{{ matrix_ssl_certbot_docker_image }}"
|
|
|
|
|
|
|
|
- name: Ensure SSL certificate paths exists
|
|
|
|
file:
|
|
|
|
path: "{{ item }}"
|
|
|
|
state: directory
|
|
|
|
mode: 0770
|
|
|
|
owner: "{{ matrix_user_username }}"
|
|
|
|
group: "{{ matrix_user_username }}"
|
|
|
|
with_items:
|
|
|
|
- "{{ matrix_ssl_log_dir_path }}"
|
|
|
|
- "{{ matrix_ssl_config_dir_path }}"
|
|
|
|
|
|
|
|
- name: Obtain initial certificates
|
|
|
|
include_tasks: "setup_ssl_for_domain.yml"
|
|
|
|
with_items: "{{ domains_to_obtain_certificate_for }}"
|
|
|
|
loop_control:
|
|
|
|
loop_var: domain_name
|
|
|
|
|
|
|
|
- name: Ensure SSL renewal script installed
|
|
|
|
template:
|
|
|
|
src: "{{ role_path }}/templates/usr-local-bin/matrix-ssl-certificates-renew.j2"
|
|
|
|
dest: "/usr/local/bin/matrix-ssl-certificates-renew"
|
|
|
|
mode: 0750
|
|
|
|
|
|
|
|
- name: Ensure periodic SSL renewal cronjob configured
|
|
|
|
template:
|
|
|
|
src: "{{ role_path }}/templates/cron.d/matrix-ssl-certificate-renewal.j2"
|
|
|
|
dest: "/etc/cron.d/matrix-ssl-certificate-renewal"
|
|
|
|
mode: 0600
|