68 lines
1.9 KiB
YAML
68 lines
1.9 KiB
YAML
- name: Genereer Nextcloud .env bestand met secrets en domein
|
|
hosts: localhost
|
|
gather_facts: false
|
|
vars:
|
|
timezone: "Europe/Berlin"
|
|
secrets_list:
|
|
- DATABASE_PASSWORD
|
|
- FULLTEXTSEARCH_PASSWORD
|
|
- IMAGINARY_SECRET
|
|
- NEXTCLOUD_PASSWORD
|
|
- ONLYOFFICE_SECRET
|
|
- RECORDING_SECRET
|
|
- REDIS_PASSWORD
|
|
- SIGNALING_SECRET
|
|
- TALK_INTERNAL_SECRET
|
|
- TURN_SECRET
|
|
- WHITEBOARD_SECRET
|
|
|
|
tasks:
|
|
- name: Fail als domein niet is meegegeven
|
|
fail:
|
|
msg: "Gebruik --extra-vars 'domain=example.com' om een domein op te geven."
|
|
when: domain is not defined
|
|
|
|
- name: Genereer willekeurige secrets
|
|
set_fact:
|
|
generated_secrets: >-
|
|
{{
|
|
dict(
|
|
secrets_list | zip(
|
|
secrets_list | map('password', 32, 'ascii_letters,digits')
|
|
)
|
|
)
|
|
}}
|
|
|
|
- name: Standaardconfiguratie instellen
|
|
set_fact:
|
|
default_config:
|
|
NC_DOMAIN: "{{ domain }}"
|
|
TIMEZONE: "{{ timezone }}"
|
|
CLAMAV_ENABLED: "no"
|
|
COLLABORA_ENABLED: "no"
|
|
FULLTEXTSEARCH_ENABLED: "no"
|
|
IMAGINARY_ENABLED: "no"
|
|
ONLYOFFICE_ENABLED: "no"
|
|
TALK_ENABLED: "no"
|
|
TALK_RECORDING_ENABLED: "no"
|
|
WHITEBOARD_ENABLED: "yes"
|
|
APACHE_MAX_SIZE: "17179869184"
|
|
APACHE_PORT: 443
|
|
NEXTCLOUD_UPLOAD_LIMIT: "16G"
|
|
NEXTCLOUD_MEMORY_LIMIT: "512M"
|
|
NEXTCLOUD_MAX_TIME: 3600
|
|
TALK_PORT: 3478
|
|
|
|
- name: Combineer alle variabelen
|
|
set_fact:
|
|
env_vars: "{{ generated_secrets | combine(default_config) }}"
|
|
|
|
- name: Schrijf alle variabelen naar .env bestand
|
|
copy:
|
|
dest: ./nextcloud.env
|
|
mode: '0600'
|
|
content: |
|
|
{% for key, value in env_vars.items() %}
|
|
{{ key }}={{ value }}
|
|
{% endfor %}
|