2019-04-30 13:30:26 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
- name: Fail if playbook called incorrectly
|
2022-07-18 07:39:08 +00:00
|
|
|
ansible.builtin.fail:
|
2019-04-30 13:30:26 +00:00
|
|
|
msg: "The `username` variable needs to be provided to this playbook, via --extra-vars"
|
|
|
|
when: "username is not defined or username == '<your-username>'"
|
|
|
|
|
|
|
|
- name: Fail if playbook called incorrectly
|
2022-07-18 07:39:08 +00:00
|
|
|
ansible.builtin.fail:
|
2019-04-30 13:30:26 +00:00
|
|
|
msg: "The `password` variable needs to be provided to this playbook, via --extra-vars"
|
|
|
|
when: "password is not defined or password == '<your-password>'"
|
|
|
|
|
2022-11-27 05:23:41 +00:00
|
|
|
- name: Fail if not using integrated Postgres database
|
2022-07-18 07:39:08 +00:00
|
|
|
ansible.builtin.fail:
|
2024-10-07 05:46:05 +00:00
|
|
|
msg: "This command is working only when Postgres is installed via the the integrated ansible-role-postgres role"
|
2024-09-27 06:37:24 +00:00
|
|
|
when: "not postgres_enabled | bool"
|
2019-04-30 13:30:26 +00:00
|
|
|
|
2022-11-27 05:23:41 +00:00
|
|
|
- name: Ensure Postgres is started
|
2022-07-18 07:39:08 +00:00
|
|
|
ansible.builtin.service:
|
2024-09-27 06:37:24 +00:00
|
|
|
name: "{{ postgres_identifier }}"
|
2019-04-30 13:30:26 +00:00
|
|
|
state: started
|
2022-02-05 20:32:54 +00:00
|
|
|
daemon_reload: true
|
2022-11-27 05:23:41 +00:00
|
|
|
register: postgres_start_result
|
2019-04-30 13:30:26 +00:00
|
|
|
|
2022-11-27 05:23:41 +00:00
|
|
|
- name: Ensure Synapse is started
|
2022-07-18 07:39:08 +00:00
|
|
|
ansible.builtin.service:
|
2022-11-27 05:23:41 +00:00
|
|
|
name: matrix-synapse
|
2019-04-30 13:30:26 +00:00
|
|
|
state: started
|
2022-02-05 20:32:54 +00:00
|
|
|
daemon_reload: true
|
2022-11-27 05:23:41 +00:00
|
|
|
register: synapse_start_result
|
2019-04-30 13:30:26 +00:00
|
|
|
|
2022-11-27 05:23:41 +00:00
|
|
|
- name: Wait a while, so that Synapse and/or Postgres can manage to start
|
2022-07-18 08:22:05 +00:00
|
|
|
ansible.builtin.pause:
|
2019-04-30 13:30:26 +00:00
|
|
|
seconds: 7
|
2022-11-27 05:23:41 +00:00
|
|
|
when: "synapse_start_result.changed or postgres_start_result.changed"
|
2019-04-30 13:30:26 +00:00
|
|
|
|
2022-11-27 05:23:41 +00:00
|
|
|
- name: Generate user password hash
|
2022-11-04 14:39:35 +00:00
|
|
|
ansible.builtin.shell: "{{ devture_systemd_docker_base_host_command_docker }} exec matrix-synapse /usr/local/bin/hash_password -c /data/homeserver.yaml -p {{ password | quote }}"
|
2019-04-30 13:30:26 +00:00
|
|
|
register: password_hash
|
2022-07-18 09:28:39 +00:00
|
|
|
changed_when: false
|
2019-04-30 13:30:26 +00:00
|
|
|
|
2022-11-27 05:23:41 +00:00
|
|
|
- name: Generate user password-change SQL command
|
|
|
|
ansible.builtin.set_fact:
|
|
|
|
matrix_synapse_user_password_change_command: >-
|
2024-09-27 06:37:24 +00:00
|
|
|
{{ postgres_bin_path }}/cli-non-interactive --dbname={{ matrix_synapse_database_database | quote }} -c "UPDATE users SET password_hash='{{ password_hash.stdout }}' WHERE name = '@{{ username }}:{{ matrix_domain }}'"
|
2022-11-27 05:23:41 +00:00
|
|
|
|
2019-04-30 13:30:26 +00:00
|
|
|
- name: Update user password hash
|
2022-11-27 05:23:41 +00:00
|
|
|
ansible.builtin.command:
|
|
|
|
cmd: "{{ matrix_synapse_user_password_change_command }}"
|
2022-07-18 09:28:39 +00:00
|
|
|
register: matrix_synapse_update_user_password_result
|
|
|
|
changed_when: matrix_synapse_update_user_password_result.rc == 0
|
2022-11-27 05:23:41 +00:00
|
|
|
failed_when: "matrix_synapse_update_user_password_result.rc != 0 or matrix_synapse_update_user_password_result.stdout != 'UPDATE 1'"
|