summaryrefslogtreecommitdiff
path: root/roles/elevate/liquidtruth/tasks/nginx.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/elevate/liquidtruth/tasks/nginx.yml')
-rw-r--r--roles/elevate/liquidtruth/tasks/nginx.yml78
1 files changed, 78 insertions, 0 deletions
diff --git a/roles/elevate/liquidtruth/tasks/nginx.yml b/roles/elevate/liquidtruth/tasks/nginx.yml
new file mode 100644
index 00000000..2066ce27
--- /dev/null
+++ b/roles/elevate/liquidtruth/tasks/nginx.yml
@@ -0,0 +1,78 @@
+---
+- name: install nginx
+ apt:
+ name: nginx-light
+ state: present
+
+- name: remove nginx default config
+ file:
+ name: /etc/nginx/sites-enabled/default
+ state: absent
+ notify: restart nginx
+
+- name: install nginx config snippets
+ loop:
+ - ssl
+ - hsts
+ copy:
+ src: "{{ global_files_dir }}/common/nginx-snippets/{{ item }}.conf"
+ dest: /etc/nginx/snippets/
+ notify: restart nginx
+
+- name: generate Diffie-Hellman parameters
+ openssl_dhparam:
+ path: /etc/ssl/dhparams.pem
+ size: 2048
+ notify: restart nginx
+
+- name: install nginx config
+ template:
+ src: nginx.conf.j2
+ dest: /etc/nginx/sites-available/liquidtruth
+ notify: restart nginx
+
+- name: check if acme certs already exist
+ loop: "{{ liquidtruth_hostnames }}"
+ stat:
+ path: "/var/lib/acme/live/{{ item }}"
+ register: acme_cert_stat
+
+- name: set acmecert_missing_hostnames variable
+ set_fact:
+ acmecert_missing_hostnames: "{{ acme_cert_stat.results | acme_cert_nonexistent(liquidtruth_hostnames) }}"
+
+- name: link nonexistent hostnames to self-signed interim cert
+ when: acmecert_missing_hostnames | length > 0
+ block:
+ - name: get id of existing selfsigned interim certificate
+ command: cat /var/lib/acme/.selfsigned-interim-cert
+ changed_when: false
+ check_mode: false
+ register: selfsigned_interim_cert_id
+
+ - name: set selfsigned_interim_cert_id variable
+ set_fact:
+ selfsigned_interim_cert_id: "{{ selfsigned_interim_cert_id.stdout }}"
+
+ - name: link to snakeoil cert for nonexistent hostnames
+ loop: "{{ acmecert_missing_hostnames }}"
+ file:
+ src: "../certs/{{ selfsigned_interim_cert_id }}"
+ dest: "/var/lib/acme/live/{{ item }}"
+ state: link
+
+- name: enable vhost config using acme cert
+ file:
+ src: ../sites-available/liquidtruth
+ dest: /etc/nginx/sites-enabled/liquidtruth
+ state: link
+
+- name: make sure nginx config has been (re)loaded
+ meta: flush_handlers
+
+- name: get certificate using acmetool
+ import_role:
+ name: acmetool/cert
+ vars:
+ acmetool_cert_name: "{{ liquidtruth_hostnames[0] }}"
+ acmetool_cert_hostnames: "{{ liquidtruth_hostnames }}"