replace nginx with caddy2

This commit is contained in:
HgO
2021-03-28 10:48:06 +02:00
parent 7bb919e184
commit 66b27f9087
18 changed files with 254 additions and 142 deletions

13
tasks/caddy.yml Normal file
View File

@@ -0,0 +1,13 @@
- name: Copy Caddy2 config file
template:
src: mumble-web/Caddyfile.j2
dest: "{{ caddy_config_dir }}/mumble.conf"
owner: "{{ caddy_owner }}"
group: "{{ caddy_group }}"
mode: "0640"
# validate: caddy validate -config %s
notify: reload caddy
tags: caddy_config
- name: Trigger Caddy2 handlers
meta: flush_handlers

View File

@@ -1,21 +0,0 @@
- name: Ensure Diffie-Hellman directory exists
file:
path: "{{ mumble_web_nginx_dhparam | dirname }}"
state: directory
owner: root
group: www-data
mode: "755"
- name: Generate Diffie-Hellman parameters
# This can take a long time... So we are doing it in async mode
openssl_dhparam:
path: "{{ mumble_web_nginx_dhparam }}"
state: present
owner: root
group: www-data
mode: "640"
size: "{{ mumble_web_nginx_dhparam_size }}"
async: 3600
poll: 0
changed_when: no
register: _mumble_web_nginx_dhparam

View File

@@ -1,7 +0,0 @@
- name: Waiting for Diffie-Hellman task to complete…
async_status:
jid: "{{ _mumble_web_nginx_dhparam.ansible_job_id }}"
register: _mumble_web_nginx_dhparam_job
retries: 60
delay: 30 # will retry every 30s for 30min (60 retries)
until: _mumble_web_nginx_dhparam_job.finished

View File

@@ -1,21 +1,14 @@
- name: Generate Diffie-Hellman parameters in async mode
import_tasks: dhparam/begin.yml
when: mumble_web_enabled and mumble_web_nginx_generate_dhparam
tags:
- certificate
- dhparam
- name: Install ACME certificates
import_role:
name: ppbe.acme
when: acme_enabled
when: acme_enabled and murmur_enabled
tags:
- certificate
- acme
- name: Install Self-Signed certificates
import_tasks: self_signed.yml
when: not acme_enabled
when: not acme_enabled and murmur_enabled
tags:
- certificate
- self_signed
@@ -30,14 +23,7 @@
when: mumble_web_enabled
tags: mumble_web
- name: Wait for Diffie-Hellman task to complete
import_tasks: dhparam/end.yml
when: mumble_web_enabled and mumble_web_nginx_generate_dhparam
tags:
- certificate
- dhparam
- name: Configure Nginx for mumble web client
import_tasks: nginx.yml
when: mumble_web_enabled and mumble_web_nginx_enabled
tags: nginx
- name: Configure Caddy2 for mumble web client
import_tasks: caddy.yml
when: mumble_web_enabled and mumble_web_caddy_enabled
tags: caddy

View File

@@ -19,19 +19,19 @@
- name: Create mumble-web system user
user:
name: "{{ mumble_web_owner }}"
home: "{{ mumble_web_www_dir }}"
home: "{{ mumble_web_home_dir }}"
groups:
- www-data
- www-data
shell: /sbin/nologin
password: '*'
state: present
system: yes
append: yes
create_home: no
tags: mumble_web_install
- name: Change mumble-web home directory's permissions
file:
path: "{{ mumble_web_www_dir }}"
path: "{{ mumble_web_home_dir }}"
owner: "{{ mumble_web_owner }}"
group: "{{ mumble_web_group }}"
mode: "755"
@@ -41,7 +41,7 @@
- name: Clone mumble-web git repository
git:
repo: https://github.com/Johni0702/mumble-web.git
dest: "{{ mumble_web_www_dir }}"
dest: "{{ mumble_web_code_dir }}"
version: "{{ mumble_web_version }}"
register: mumble_web_cloned
become_user: "{{ mumble_web_owner }}"
@@ -49,26 +49,33 @@
- name: Check if mumble-web dist directory exists
stat:
path: "{{ mumble_web_www_dir }}/dist"
path: "{{ mumble_web_dist_dir }}"
register: _mumble_web_dist
tags:
- mumble_web_install
- mumble_web_build
- name: Build mumble-web from sources
command: npm clean-install
command: npm clean-install {{ mumble_web_dist_dir | quote }}
args:
chdir: "{{ mumble_web_www_dir }}"
chdir: "{{ mumble_web_code_dir }}"
register: _mumble_web_installed
become_user: "{{ mumble_web_owner }}"
when: mumble_web_cloned is changed or not _mumble_web_dist.stat.exists
tags: [mumble_web_install,mumble_web_build]
tags:
- mumble_web_install
- mumble_web_build
- name: Copy mumble-web config file
template:
src: mumble-web/config.js.j2
dest: "{{ mumble_web_www_dir }}/dist/config.local.js"
dest: "{{ mumble_web_dist_dir }}/config.local.js"
owner: "{{ mumble_web_owner }}"
group: "{{ mumble_web_group }}"
mode: "644"
tags: [mumble_web_install,mumble_web_config]
tags:
- mumble_web_install
- mumble_web_config
- name: Copy mumble-web systemd service
template:
@@ -80,7 +87,9 @@
notify:
- reload systemd
- reload mumble-web
tags: [mumble_web_install,mumble_web_config]
tags:
- mumble_web_install
- mumble_web_config
- name: Start mumble-web service
service:

View File

@@ -3,17 +3,16 @@
name: mumble-server
state: present
register: murmur_installed
tags: murmur_install
- name: Install ICE dependencies for Python
package:
name: "{{ package }}"
name:
- python3-zeroc-ice
- python3-yaml
- zeroc-ice-compilers
state: present
loop:
- python3-zeroc-ice
- python3-yaml
- zeroc-ice-compilers
loop_control:
loop_var: package
tags: murmur_install
- name: Append ssl-cert group to {{ murmur_owner }} user
user:
@@ -24,6 +23,7 @@
append: yes
system: yes
notify: restart murmur
tags: murmur_install
- name: Copy Murmur config file
template:
@@ -33,12 +33,16 @@
group: "{{ murmur_group }}"
mode: "640"
notify: restart murmur
tags:
- murmur_install
- murmur_config
- name: Start mumble-server service
service:
name: mumble-server
enabled: yes
state: started
tags: murmur_install
- name: Write superuser password to a file
copy:
@@ -49,6 +53,9 @@
mode: "600"
when: murmur_superuser_password is defined
notify: change murmur superuser password
tags:
- murmur_install
- murmur_config
- name: Trigger Murmur handlers
meta: flush_handlers
@@ -60,6 +67,9 @@
owner: root
group: root
mode: "755"
tags:
- murmur_install
- murmur_ice
- name: Copy mice Python script
copy:
@@ -70,6 +80,9 @@
mode: "755"
notify: create murmur channels
register: _murmur_mice_script_copied
tags:
- murmur_install
- murmur_ice
- name: Compile Murmur.ice slice file
command: |-
@@ -81,6 +94,9 @@
args:
chdir: "{{ murmur_ice_script_dir }}"
when: _murmur_mice_script_copied is changed
tags:
- murmur_install
- murmur_ice
- name: Copy mice config
copy:
@@ -91,6 +107,10 @@
group: root
mode: "644"
notify: create murmur channels
tags:
- murmur_install
- murmur_config
- murmur_ice
- name: Trigger Mice handlers
meta: flush_handlers

View File

@@ -1,18 +0,0 @@
- name: Copy Nginx config file
template:
src: mumble-web/nginx.conf.j2
dest: "{{ mumble_web_nginx_config_dir }}/sites-available/mumble.conf"
owner: root
group: www-data
mode: "755"
notify: reload nginx
- name: Enable Nginx config file
file:
src: "{{ mumble_web_nginx_config_dir }}/sites-available/mumble.conf"
path: "{{ mumble_web_nginx_config_dir }}/sites-enabled/mumble.conf"
state: link
notify: reload nginx
- name: Trigger Nginx handlers
meta: flush_handlers

View File

@@ -1,12 +1,9 @@
- name: Install SSL dependencies
package:
name: "{{ package }}"
name:
- ssl-cert
- python3-openssl
state: present
loop:
- ssl-cert
- python3-openssl
loop_control:
loop_var: package
tags: selfsigned_install
- name: Create SSL config directories

View File

@@ -31,11 +31,12 @@
- name: Generate self-signed certificate
openssl_certificate:
path: "{{ acme_certs_dir }}/{{ domain.name }}.d/cert.pem"
path: "{{ acme_certs_dir }}/{{ domain.name }}.d/fullchain.pem"
csr_path: "{{ acme_csr_dir }}/{{ domain.name }}.csr"
privatekey_path: "{{ acme_keys_dir }}/{{ domain.name }}.key"
provider: selfsigned
state: present
owner: root
group: root
mode: "644"
mode: "644"
tags: selfsigned_config