mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-12-09 19:05:32 +00:00
Refactor proxy/webserver configuration variables to a consistent webserver_* naming scheme across roles. Replace legacy variables like proxy_extra_configuration, client_max_body_size, vhost_flavour, location_ws and ws_port with webserver_extra_configuration, webserver_client_max_body_size, webserver_vhost_flavour, webserver_websocket_location and webserver_websocket_port. Update NGINX vhost and location templates (html, upload, ws, basic, ws_generic) as well as callers (sys-front-inj-all, sys-stk-front-proxy, various web-app-* and web-svc-* roles) to use the new naming. Tighten docker-compose Git repository handling by making docker_git_repository_pull depend on docker_git_repository_address being defined, a string and non-empty. This avoids accidental Git operations when the repository address is unset or of the wrong type. Refactor the BigBlueButton role structure and fix deployment bugs: introduce 01_core.yml to orchestrate docker/proxy setup, database seeding, websocket map deployment, docker-compose overrides and admin/bootstrap logic in a single once-executed entrypoint. Rename supporting task files (02_docker-compose.yml, 03_administrator.yml, 04_dependencies.yml) and update tasks/main.yml to delegate via include_tasks with run_once_web_app_bigbluebutton. Improve Greenlight admin creation behavior by treating the 'Email has already been taken' error as a non-fatal, unchanged outcome and running user:set_admin_role as a fallback, both for the primary password and the OIDC starred-password path. Also standardize vhost flavour selection for services like Mailu, Discourse, CDN, Collabora, Coturn, OnlyOffice, Simpleicons and web-svc-logout by explicitly passing webserver_vhost_flavour where needed and aligning client_max_body_size and websocket configuration with the new webserver_* variables. Reference: ChatGPT conversation https://chatgpt.com/share/6931c530-bba8-800f-9997-dd61dc1d497b
71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
- include_tasks: utils/once/flag.yml
|
|
|
|
- name: Ensure MAILU_HOSTNAMES is a list with max 1 entry
|
|
ansible.builtin.assert:
|
|
that:
|
|
- MAILU_HOSTNAMES is iterable
|
|
- MAILU_HOSTNAMES is sequence
|
|
- MAILU_HOSTNAMES | length <= 1
|
|
fail_msg: "MAILU_HOSTNAMES must be a list with at most one entry (only one host is supported). You can set the other ones as alias."
|
|
success_msg: "MAILU_HOSTNAMES is valid."
|
|
when: MODE_ASSERT | bool
|
|
|
|
- name: "load variables from {{ DOCKER_VARS_FILE }}"
|
|
include_vars: "{{ DOCKER_VARS_FILE }}"
|
|
|
|
- name: Ensure Rspamd overrides directory exists (host)
|
|
file:
|
|
path: "{{ MAILU_RSPAMD_HOST_DIR }}"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Render ratelimit.conf
|
|
template:
|
|
src: ratelimit.conf.j2
|
|
dest: "{{ MAILU_RSPAMD_HOST_FILE }}"
|
|
mode: "0644"
|
|
|
|
- name: "load docker, db and proxy for {{ application_id }}"
|
|
include_role:
|
|
name: sys-stk-full-stateful
|
|
vars:
|
|
docker_compose_flush_handlers: true
|
|
webserver_vhost_flavour: "basic"
|
|
domain: "{{ MAILU_HOSTNAME }}"
|
|
|
|
- name: "Include Cert deploy service for '{{ role_name }}'"
|
|
include_role:
|
|
name: sys-ctl-mtn-cert-deploy
|
|
when: SSL_ENABLED | bool
|
|
|
|
- name: "Flush Docker Compose handlers"
|
|
meta: flush_handlers
|
|
|
|
- name: "Create Mailu accounts"
|
|
include_tasks: 02_manage_user.yml
|
|
vars:
|
|
MAILU_DOCKER_DIR: "{{ docker_compose.directories.instance }}"
|
|
mailu_api_base_url: "http://127.0.0.1:8080/api/v1"
|
|
mailu_action: >-
|
|
{{
|
|
(
|
|
'administrator' in (item.value.get('roles', []))
|
|
)
|
|
| ternary('admin','user')
|
|
}}
|
|
mailu_user_key: "{{ item.key }}"
|
|
mailu_user_name: "{{ item.value.username }}"
|
|
mailu_password: "{{ item.value.password }}"
|
|
mailu_token_ip: "{{ item.value.ip | default(networks.internet.ip4) }}"
|
|
mailu_token_name: "{{ SOFTWARE_NAME ~ ' Token for ' ~ item.value.username }}"
|
|
loop: "{{ users | dict2items }}"
|
|
loop_control:
|
|
loop_var: item
|
|
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
|
|
|
|
- name: Generate DKIM public key
|
|
include_tasks: 04_generate-and-read-dkim.yml
|
|
|
|
- name: Set Mailu DNS records
|
|
include_tasks: 05_dns-records.yml
|