summaryrefslogtreecommitdiff
path: root/roles/elevate/liquidtruth
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2019-10-12 03:01:11 +0200
committerChristian Pointner <equinox@spreadspace.org>2019-10-12 03:01:11 +0200
commitd11a24b7f0edf309a2bbd5687acbea8bc1e012cc (patch)
tree919f7fedd1fecd88877ffbb12449345bf589dc83 /roles/elevate/liquidtruth
parentcreate acmetool accounts for some machines (diff)
added generic nginx role
Diffstat (limited to 'roles/elevate/liquidtruth')
-rw-r--r--roles/elevate/liquidtruth/handlers/main.yml5
-rw-r--r--roles/elevate/liquidtruth/tasks/main.yml10
-rw-r--r--roles/elevate/liquidtruth/tasks/nginx.yml78
-rw-r--r--roles/elevate/liquidtruth/templates/nginx.conf.j248
4 files changed, 9 insertions, 132 deletions
diff --git a/roles/elevate/liquidtruth/handlers/main.yml b/roles/elevate/liquidtruth/handlers/main.yml
index 22e01ee4..03ed878a 100644
--- a/roles/elevate/liquidtruth/handlers/main.yml
+++ b/roles/elevate/liquidtruth/handlers/main.yml
@@ -2,8 +2,3 @@
- name: update apt cache
apt:
update_cache: yes
-
-- name: restart nginx
- service:
- name: nginx
- state: restarted
diff --git a/roles/elevate/liquidtruth/tasks/main.yml b/roles/elevate/liquidtruth/tasks/main.yml
index cc5dd20e..d791c33f 100644
--- a/roles/elevate/liquidtruth/tasks/main.yml
+++ b/roles/elevate/liquidtruth/tasks/main.yml
@@ -24,7 +24,15 @@
import_tasks: nodejs.yml
- name: install and configure nginx
- import_tasks: nginx.yml
+ import_role:
+ name: nginx
+ vars:
+ nginx_vhosts:
+ liquidtruth:
+ template: generic-proxy-no-buffering-with-acme
+ acme: true
+ hostnames: "{{ liquidtruth_hostnames }}"
+ proxy_pass: "http://127.0.0.1:8080"
- name: create app user
user:
diff --git a/roles/elevate/liquidtruth/tasks/nginx.yml b/roles/elevate/liquidtruth/tasks/nginx.yml
deleted file mode 100644
index 2066ce27..00000000
--- a/roles/elevate/liquidtruth/tasks/nginx.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-- 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 }}"
diff --git a/roles/elevate/liquidtruth/templates/nginx.conf.j2 b/roles/elevate/liquidtruth/templates/nginx.conf.j2
deleted file mode 100644
index ef690b1c..00000000
--- a/roles/elevate/liquidtruth/templates/nginx.conf.j2
+++ /dev/null
@@ -1,48 +0,0 @@
-# used for websockets
-# set http_connection to either upgrade or close (as normal)
-map $http_upgrade $connection_upgrade {
- default upgrade;
- '' close;
-}
-
-server {
- listen 80;
- listen [::]:80;
- server_name {{ liquidtruth_hostnames | join(' ') }};
-
- include snippets/acmetool.conf;
-
- location / {
- return 301 https://$host$request_uri;
- }
-}
-
-server {
- listen 443 ssl http2;
- listen [::]:443 ssl http2;
- server_name {{ liquidtruth_hostnames | join(' ') }};
-
- include snippets/acmetool.conf;
- include snippets/ssl.conf;
- ssl_certificate /var/lib/acme/live/{{ liquidtruth_hostnames[0] }}/fullchain;
- ssl_certificate_key /var/lib/acme/live/{{ liquidtruth_hostnames[0] }}/privkey;
- include snippets/hsts.conf;
-
- location / {
- proxy_buffering off;
- proxy_ignore_headers "X-Accel-Buffering";
- proxy_request_buffering off;
- proxy_http_version 1.1;
-
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
-
- # for websockets
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $connection_upgrade;
-
- proxy_pass http://127.0.0.1:8080;
- }
-}