45 lines
1.5 KiB
YAML
45 lines
1.5 KiB
YAML
---
|
|
|
|
- name: Ensure {{ key }} is set to {{ '***' if ['pass', 'secret', 'key']|select('in', key) else value }}
|
|
block:
|
|
- name: Check value of {{ key }}
|
|
community.docker.docker_container_exec:
|
|
container: "{{ nextcloud_container_name }}"
|
|
command: "{{ nextcloud_occ_command }} config:{{ type }}:get {{ scope }} {{ entry }}"
|
|
user: "{{ nextcloud_user_info.uid }}"
|
|
tty: yes
|
|
register: nextcloud_current_config_entry
|
|
until: nextcloud_current_config_entry is success
|
|
retries: 30
|
|
delay: 10
|
|
check_mode: false
|
|
changed_when: false
|
|
|
|
- name: Set {{ key }} to {{ '***' if (['pass', 'secret', 'key']|select('in', key)) else value }}
|
|
community.docker.docker_container_exec:
|
|
container: "{{ nextcloud_container_name }}"
|
|
command: "{{ nextcloud_occ_command }} config:{{ type }}:set {{ scope }} {{ entry }} --type={{ value_type }} --value={{ value }} -n"
|
|
user: "{{ nextcloud_user_info.uid }}"
|
|
tty: yes
|
|
when: nextcloud_current_config_entry.stdout != value
|
|
notify: restart-nextcloud
|
|
vars:
|
|
entry_path: "{{ key.split('.') }}"
|
|
value_type: >-
|
|
{% if value is boolean %}
|
|
boolean
|
|
{% elif value is integer %}
|
|
integer
|
|
{% elif value is float %}
|
|
float
|
|
{% else %}
|
|
string
|
|
{% endif %}
|
|
type: "{{ entry_path | first }}"
|
|
scope: "{{ entry_path[1] if entry_path | length > 2 else '' }}"
|
|
entry: >-
|
|
{{
|
|
entry_path[1] if entry_path|length == 2 else
|
|
(entry_path[2:] | join(" "))
|
|
}}
|