From d11a24b7f0edf309a2bbd5687acbea8bc1e012cc Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 12 Oct 2019 03:01:11 +0200 Subject: added generic nginx role --- roles/elevate/liquidtruth/handlers/main.yml | 5 -- roles/elevate/liquidtruth/tasks/main.yml | 10 ++- roles/elevate/liquidtruth/tasks/nginx.yml | 78 ----------------------- roles/elevate/liquidtruth/templates/nginx.conf.j2 | 48 -------------- 4 files changed, 9 insertions(+), 132 deletions(-) delete mode 100644 roles/elevate/liquidtruth/tasks/nginx.yml delete mode 100644 roles/elevate/liquidtruth/templates/nginx.conf.j2 (limited to 'roles/elevate/liquidtruth') 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; - } -} -- cgit v1.2.3