| @@ -37,6 +37,26 @@ matrix_playbook_ssl_enabled: "{{ matrix_playbook_ssl_retrieval_method in ['lets- | |||||
| # # | # # | ||||
| ######################################################################## | ######################################################################## | ||||
| ######################################################################## | |||||
| # # | |||||
| # aux # | |||||
| # # | |||||
| ######################################################################## | |||||
| aux_directory_default_owner: "{{ matrix_user_username }}" | |||||
| aux_directory_default_group: "{{ matrix_user_groupname }}" | |||||
| aux_file_default_owner: "{{ matrix_user_username }}" | |||||
| aux_file_default_group: "{{ matrix_user_groupname }}" | |||||
| ######################################################################## | |||||
| # # | |||||
| # /aux # | |||||
| # # | |||||
| ######################################################################## | |||||
| ######################################################################## | ######################################################################## | ||||
| # # | # # | ||||
| # base # | # base # | ||||
| @@ -112,7 +112,8 @@ | |||||
| - galaxy/ntfy | - galaxy/ntfy | ||||
| - custom/matrix-nginx-proxy | - custom/matrix-nginx-proxy | ||||
| - custom/matrix-coturn | - custom/matrix-coturn | ||||
| - custom/matrix-aux | |||||
| - role: galaxy/aux | |||||
| - role: galaxy/com.devture.ansible.role.postgres_backup | - role: galaxy/com.devture.ansible.role.postgres_backup | ||||
| @@ -59,3 +59,7 @@ | |||||
| - src: git+https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper.git | - src: git+https://github.com/devture/com.devture.ansible.role.traefik_certs_dumper.git | ||||
| version: v2.8.1-0 | version: v2.8.1-0 | ||||
| - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-aux.git | |||||
| name: aux | |||||
| version: v1.0.0-0 | |||||
| @@ -1,81 +0,0 @@ | |||||
| --- | |||||
| # matrix-aux is a role that manages auxiliary files and directories on your Matrix server. | |||||
| # | |||||
| # Certain components (like matrix-synapse, etc.) may sometimes require additional templates (email templates, privacy policies, etc.). | |||||
| # This role allows such files to be managed by the playbook. | |||||
| # | |||||
| # Note that files and directories created via this role are not automatically made available for containers to use. | |||||
| # If you use this role to put files in a directory that's already mounted into a container, | |||||
| # you can access the files without additional work. | |||||
| # Otherwise, you'd need to mount the file/directory to the container that needs it. | |||||
| # Roles usually provide a `matrix_*_additional_volumes` or `matrix_*_container_extra_arguments` variable | |||||
| # that you can use to mount an additional volume. | |||||
| # The default permission mode when creating directories using `matrix_aux_directory_definitions` | |||||
| matrix_aux_directory_default_mode: '0750' | |||||
| # Holds a list of directories to create on the server. | |||||
| # | |||||
| # By default, directories are: | |||||
| # - created with permissions as specified in `matrix_aux_directory_default_mode` | |||||
| # - owned by the `matrix_user_username` user and `matrix_user_groupname` group (usually `matrix:matrix`) | |||||
| # | |||||
| # Example: | |||||
| # | |||||
| # matrix_aux_directory_definitions: | |||||
| # - dest: /matrix/aux | |||||
| # | |||||
| # - dest: /matrix/another | |||||
| # mode: '0700' | |||||
| # owner: 'some-user' | |||||
| # group: 'some-group' | |||||
| matrix_aux_directory_definitions: [] | |||||
| # The default permission mode when creating directories using `matrix_aux_directory_definitions` | |||||
| matrix_aux_file_default_mode: '0640' | |||||
| # Holds a list of files to create on the server. | |||||
| # | |||||
| # By default, files are: | |||||
| # - created with permissions as specified in `matrix_aux_file_default_mode` | |||||
| # - owned by the `matrix_user_username` user and `matrix_user_groupname` group (usually `matrix:matrix`) | |||||
| # | |||||
| # You can define the file content inline (in your `vars.yml` file) or as an external file (see the example below). | |||||
| # Defining the content inline in `vars.yml` has the benefit of not splitting your configuration into multiple files, | |||||
| # but rather keeping everything inside `vars.yml` (which also gets backed up on the server in `/matrix/vars.yml`). | |||||
| # | |||||
| # Note: parent paths for files must exist. | |||||
| # If you've defined a file with a destination of `/matrix/some/path/file.txt`, | |||||
| # then you likely need to add `/matrix/some/path` to `matrix_aux_directory_definitions` as well. | |||||
| # You don't need to do this for directories that the playbook already creates for you. | |||||
| # | |||||
| # Use a `content` key for text content and `src` with a location to a file for binary content. | |||||
| # The `content` key does not support binary content (see https://github.com/ansible/ansible/issues/11594). | |||||
| # | |||||
| # Example: | |||||
| # | |||||
| # matrix_aux_file_definitions: | |||||
| # - dest: "{{ matrix_synapse_config_dir_path }}/something.html" | |||||
| # content: | | |||||
| # <!doctype html> | |||||
| # <html><body>Something</body></html> | |||||
| # | |||||
| # - dest: /matrix/aux/some-other-file.txt | |||||
| # content: "Something" | |||||
| # mode: '0600' | |||||
| # owner: 'some-user' | |||||
| # group: 'some-group' | |||||
| # | |||||
| # - dest: /matrix/aux/yet-another-file.txt | |||||
| # content: "{{ lookup('template', '/path/to/file.txt.j2') }}" | |||||
| # mode: '0600' | |||||
| # owner: 'some-user' | |||||
| # group: 'some-group' | |||||
| # | |||||
| # - dest: /matrix/aux/binary-file.dat | |||||
| # src: "/path/to/binary.dat" | |||||
| # mode: '0600' | |||||
| # owner: 'some-user' | |||||
| # group: 'some-group' | |||||
| matrix_aux_file_definitions: [] | |||||
| @@ -1,9 +0,0 @@ | |||||
| --- | |||||
| - tags: | |||||
| - setup-all | |||||
| - setup-aux-files | |||||
| - install-all | |||||
| - install-aux-files | |||||
| block: | |||||
| - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup.yml" | |||||
| @@ -1,20 +0,0 @@ | |||||
| --- | |||||
| - name: Ensure AUX directories are created | |||||
| ansible.builtin.file: | |||||
| dest: "{{ item.dest }}" | |||||
| state: directory | |||||
| owner: "{{ item.owner | default(matrix_user_username) }}" | |||||
| group: "{{ item.group | default(matrix_user_groupname) }}" | |||||
| mode: "{{ item.mode | default(matrix_aux_directory_default_mode) }}" | |||||
| with_items: "{{ matrix_aux_directory_definitions }}" | |||||
| - name: Ensure AUX files are created | |||||
| ansible.builtin.copy: | |||||
| src: "{{ item.src if 'src' in item else omit }}" | |||||
| content: "{{ item.content if 'content' in item else omit }}" | |||||
| dest: "{{ item.dest }}" | |||||
| owner: "{{ item.owner | default(matrix_user_username) }}" | |||||
| group: "{{ item.group | default(matrix_user_groupname) }}" | |||||
| mode: "{{ item.mode | default(matrix_aux_file_default_mode) }}" | |||||
| with_items: "{{ matrix_aux_file_definitions }}" | |||||
| @@ -20,3 +20,6 @@ matrix_playbook_migration_matrix_redis_migration_validation_enabled: true | |||||
| # Controls if (`matrix_etherpad` -> `etherpad`) validation will run. | # Controls if (`matrix_etherpad` -> `etherpad`) validation will run. | ||||
| matrix_playbook_migration_matrix_etherpad_migration_validation_enabled: true | matrix_playbook_migration_matrix_etherpad_migration_validation_enabled: true | ||||
| # Controls if (`matrix_aux` -> `aux`) validation will run. | |||||
| matrix_playbook_migration_matrix_aux_migration_validation_enabled: true | |||||
| @@ -157,3 +157,19 @@ | |||||
| Please change your configuration (vars.yml) to rename all variables (`matrix_etherpad_` -> `etherpad_`). | Please change your configuration (vars.yml) to rename all variables (`matrix_etherpad_` -> `etherpad_`). | ||||
| We found usage of the following variables: {{ matrix_playbook_migration_etherpad_migration_vars.keys() | join(', ') }} | We found usage of the following variables: {{ matrix_playbook_migration_etherpad_migration_vars.keys() | join(', ') }} | ||||
| when: "matrix_playbook_migration_etherpad_migration_vars | length > 0" | when: "matrix_playbook_migration_etherpad_migration_vars | length > 0" | ||||
| - when: matrix_playbook_migration_matrix_aux_migration_validation_enabled | bool | |||||
| block: | |||||
| - ansible.builtin.set_fact: | |||||
| matrix_playbook_migration_aux_migration_vars: |- | |||||
| {{ vars | dict2items | selectattr('key', 'match', 'matrix_aux_.*') | list | items2dict }} | |||||
| - name: (Deprecation) Catch and report matrix_aux variables | |||||
| ansible.builtin.fail: | |||||
| msg: >- | |||||
| The matrix-aux role that used to be part of this playbook has been replaced by https://github.com/mother-of-all-self-hosting/ansible-role-aux. | |||||
| The new role is compatible with the old one, but uses different names for its variables. | |||||
| Please change your configuration (vars.yml) to rename all variables (`matrix_aux_` -> `aux_`). | |||||
| We found usage of the following variables: {{ matrix_playbook_migration_aux_migration_vars.keys() | join(', ') }} | |||||
| when: "matrix_playbook_migration_aux_migration_vars | length > 0" | |||||