Make roles more independent of one another
With this change, the following roles are now only dependent on the minimal `matrix-base` role: - `matrix-corporal` - `matrix-coturn` - `matrix-mailer` - `matrix-mxisd` - `matrix-postgres` - `matrix-riot-web` - `matrix-synapse` The `matrix-nginx-proxy` role still does too much and remains dependent on the others. Wiring up the various (now-independent) roles happens via a glue variables file (`group_vars/matrix-servers`). It's triggered for all hosts in the `matrix-servers` group. According to Ansible's rules of priority, we have the following chain of inclusion/overriding now: - role defaults (mostly empty or good for independent usage) - playbook glue variables (`group_vars/matrix-servers`) - inventory host variables (`inventory/host_vars/matrix.<your-domain>`) All roles default to enabling their main component (e.g. `matrix_mxisd_enabled: true`, `matrix_riot_web_enabled: true`). Reasoning: if a role is included in a playbook (especially separately, in another playbook), it should "work" by default. Our playbook disables some of those if they are not generally useful (e.g. `matrix_corporal_enabled: false`).
This commit is contained in:
37
CHANGELOG.md
37
CHANGELOG.md
@ -1,3 +1,40 @@
|
||||
# 2019-01-xx
|
||||
|
||||
## (BC Break) Making the playbook's roles more independent of one another
|
||||
|
||||
The following change **affects people running a more non-standard setup** - external Postgres or using our roles in their own other playbook.
|
||||
**Most users don't need to do anything**, besides becoming aware of the new glue variables file [`group_vars/matrix-servers`](group_vars/matrix-servers).
|
||||
|
||||
Because people like using the playbook's components independently (outside of this playbook) and because it's much better for maintainability, we've continued working on separating them.
|
||||
Still, we'd like to offer a turnkey solution for running a fully-featured Matrix server, so this playbook remains important for wiring up the various components.
|
||||
|
||||
With the new changes, the following roles are now only dependent on the minimal `matrix-base` role:
|
||||
- `matrix-corporal`
|
||||
- `matrix-coturn`
|
||||
- `matrix-mailer`
|
||||
- `matrix-mxisd`
|
||||
- `matrix-postgres`
|
||||
- `matrix-riot-web`
|
||||
- `matrix-synapse`
|
||||
|
||||
The `matrix-nginx-proxy` role still does too much and remains dependent on the others.
|
||||
|
||||
In addition, the following components can be completely disabled now (for those who want/need to):
|
||||
- `matrix-coturn`
|
||||
- `matrix-mailer`
|
||||
- `matrix-postgres`
|
||||
|
||||
The following changes had to be done:
|
||||
|
||||
- glue variables had to be introduced to the playbook, so it can wire together the various components. Those glue vars are stored in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file. When overriding variables for a given component (role), you need to be aware of both the role defaults (`role/ROLE/defaults/main.yml`) and the role's corresponding section in the [`group_vars/matrix-servers`](group_vars/matrix-servers) file.
|
||||
|
||||
- `matrix_postgres_use_external` has been superceeded by the more consistently named `matrix_postgres_enabled` variable and a few other `matrix_synapse_database_` variables. See the [Using an external PostgreSQL server (optional)](docs/configuring-playbook-external-postgres.md) documentation page for an up-to-date replacement.
|
||||
|
||||
- Postgres tools (`matrix-postgres-cli` and `matrix-make-user-admin`) are no longer installed if you're using an external Postgres server (`matrix_postgres_enabled: false`)
|
||||
|
||||
- roles, being more independent now, are more minimal and do not do so much magic for you. People that are building their own playbook using our roles will definitely need to take a look at the [`group_vars/matrix-servers`](group_vars/matrix-servers) file and adapt their playbooks with the same (or similar) wiring logic.
|
||||
|
||||
|
||||
# 2019-01-16
|
||||
|
||||
## Splitting the playbook into multiple roles
|
||||
|
Reference in New Issue
Block a user