|
|
@@ -1,27 +1,38 @@ |
|
|
|
|
|
- name: Load Element Web config.json content |
|
|
|
|
|
ansible.builtin.slurp: |
|
|
|
|
|
src: "{{ element_web_config_path }}" |
|
|
|
|
|
register: element_web_config_content_raw |
|
|
|
|
|
ignore_errors: no |
|
|
|
|
|
|
|
|
|
|
|
- name: Parse Element Web config.json content |
|
|
|
|
|
ansible.builtin.set_fact: |
|
|
|
|
|
element_web_config_content: "{{ element_web_config_content_raw['content'] | b64decode | from_json }}" |
|
|
|
|
|
when: element_web_config_content_raw is defined and element_web_config_content_raw['content'] is defined |
|
|
|
|
|
|
|
|
- name: Update Element Web config.json settings |
|
|
- name: Update Element Web config.json settings |
|
|
vars: |
|
|
|
|
|
additional_settings: | |
|
|
|
|
|
{ |
|
|
|
|
|
"features": { |
|
|
|
|
|
"feature_video_rooms": true, |
|
|
|
|
|
"feature_new_room_decoration_ui": true, |
|
|
|
|
|
"feature_group_calls": true, |
|
|
|
|
|
"feature_element_call_video_rooms": true |
|
|
|
|
|
}, |
|
|
|
|
|
"element_call": { |
|
|
|
|
|
"url": "https://{{ matrix_element_call_domain }}", |
|
|
|
|
|
"participant_limit": 8, |
|
|
|
|
|
"brand": "Element Call", |
|
|
|
|
|
"use_exclusively": true |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
set_fact: |
|
|
|
|
|
updated_element_web_config: "{{ (element_web_config_content.content | b64decode | from_json) | combine(additional_settings | from_json, recursive=True) }}" |
|
|
|
|
|
|
|
|
|
|
|
- name: Write updated Element Web config.json |
|
|
|
|
|
copy: |
|
|
|
|
|
content: "{{ updated_element_web_config | to_nice_json }}" |
|
|
|
|
|
|
|
|
ansible.builtin.set_fact: |
|
|
|
|
|
element_web_config_content: |
|
|
|
|
|
"{{ element_web_config_content | combine({ |
|
|
|
|
|
'features': { |
|
|
|
|
|
'feature_video_rooms': true, |
|
|
|
|
|
'feature_new_room_decoration_ui': true, |
|
|
|
|
|
'feature_group_calls': true, |
|
|
|
|
|
'feature_element_call_video_rooms': true |
|
|
|
|
|
}, |
|
|
|
|
|
'element_call': { |
|
|
|
|
|
'url': 'https://{{ matrix_element_call_domain }}', |
|
|
|
|
|
'participant_limit': 8, |
|
|
|
|
|
'brand': 'Element Call', |
|
|
|
|
|
'use_exclusively': true |
|
|
|
|
|
} |
|
|
|
|
|
}, recursive=True) }}" |
|
|
|
|
|
when: element_web_config_content is defined |
|
|
|
|
|
|
|
|
|
|
|
- name: Write updated Element Web config.json back to disk |
|
|
|
|
|
ansible.builtin.copy: |
|
|
|
|
|
content: "{{ element_web_config_content | to_nice_json }}" |
|
|
dest: "{{ element_web_config_path }}" |
|
|
dest: "{{ element_web_config_path }}" |
|
|
mode: '0644' |
|
|
mode: '0644' |
|
|
owner: "{{ matrix_user_username }}" |
|
|
owner: "{{ matrix_user_username }}" |
|
|
group: "{{ matrix_user_groupname }}" |
|
|
group: "{{ matrix_user_groupname }}" |
|
|
|
|
|
when: element_web_config_content is defined |