|
- ---
-
- - 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 acmetool Docker image is pulled
- docker_image:
- name: willwill/acme-docker
-
- # Granting +rx to others as well, because the `nginx` user from within
- # matrix-nginx-proxy needs to be able to read the acme-challenge files inside
- # for renewal purposes.
- #
- # This should not be causing security trouble outside of the container,
- # as the parent directory (/matrix) does not allow "others" to access it or any of its children.
- # Still, it works when the /ssl subtree is mounted in the container.
- - name: Ensure SSL certificates path exists
- file:
- path: "{{ matrix_ssl_certs_path }}"
- state: directory
- mode: 0775
- owner: "{{ matrix_user_username }}"
- group: "{{ matrix_user_username }}"
-
- - name: Check matrix-nginx-proxy state
- service: name=matrix-nginx-proxy
- register: matrix_nginx_proxy_state
-
- - name: Ensure matrix-nginx-proxy is stopped (if previously installed & started)
- service: name=matrix-nginx-proxy state=stopped
- when: "matrix_nginx_proxy_state.status.ActiveState|default('missing') == 'active'"
-
- - name: Ensure SSL certificates are marked as wanted in acmetool
- shell: >-
- /usr/bin/docker run --rm --name acmetool-host-grab -p 80:80
- -v {{ matrix_ssl_certs_path }}:/certs
- -e ACME_EMAIL={{ matrix_ssl_support_email }}
- willwill/acme-docker
- acmetool want {{ item }} --xlog.severity=debug
- with_items: "{{ domains_to_obtain_certificate_for }}"
-
- - name: Ensure matrix-nginx-proxy is started (if previously installed & started)
- service: name=matrix-nginx-proxy state=started
- when: "matrix_nginx_proxy_state.status.ActiveState|default('missing') == 'active'"
-
- - 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
|