mirror of
				https://github.com/spantaleev/matrix-docker-ansible-deploy.git
				synced 2025-10-30 06:47:56 +01:00 
			
		
		
		
	Move roles/matrix* to roles/custom/matrix*
This paves the way for installing other roles into `roles/galaxy` using `ansible-galaxy`, similar to how it's done in: - https://github.com/spantaleev/gitea-docker-ansible-deploy - https://github.com/spantaleev/nextcloud-docker-ansible-deploy In the near future, we'll be removing a lot of the shared role code from here and using upstream roles for it. Some of the core `matrix-*` roles have already been extracted out into other reusable roles: - https://github.com/devture/com.devture.ansible.role.postgres - https://github.com/devture/com.devture.ansible.role.systemd_docker_base - https://github.com/devture/com.devture.ansible.role.timesync - https://github.com/devture/com.devture.ansible.role.vars_preserver - https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages - https://github.com/devture/com.devture.ansible.role.playbook_help We just need to migrate to those.
This commit is contained in:
		
							
								
								
									
										73
									
								
								roles/custom/matrix-common-after/tasks/start.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								roles/custom/matrix-common-after/tasks/start.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | ||||
| --- | ||||
|  | ||||
| - name: Determine whether we should make services autostart | ||||
|   ansible.builtin.set_fact: | ||||
|     matrix_services_autostart_enabled_bool: "{{ true if matrix_services_autostart_enabled | default('') == '' else matrix_services_autostart_enabled | bool }}" | ||||
|  | ||||
| - name: Ensure systemd is reloaded | ||||
|   ansible.builtin.service: | ||||
|     daemon_reload: true | ||||
|  | ||||
| - name: Ensure Matrix services are stopped | ||||
|   ansible.builtin.service: | ||||
|     name: "{{ item }}" | ||||
|     state: stopped | ||||
|   with_items: "{{ matrix_systemd_services_list }}" | ||||
|   when: not ansible_check_mode | ||||
|  | ||||
| - name: Ensure Matrix services are started | ||||
|   ansible.builtin.service: | ||||
|     name: "{{ item }}" | ||||
|     enabled: "{{ matrix_services_autostart_enabled_bool }}" | ||||
|     state: started | ||||
|   with_items: "{{ matrix_systemd_services_list }}" | ||||
|   when: not ansible_check_mode | ||||
|  | ||||
| # If we check service state immediately, we may succeed, | ||||
| # because it takes some time for the service to attempt to start and actually fail. | ||||
| # | ||||
| # Waiting too long (30s) may not work for a similar reason, | ||||
| # as we may run into systemd's automatic restart logic retrying the service. | ||||
| - name: Wait a bit, so that services can start (or fail) | ||||
|   ansible.builtin.wait_for: | ||||
|     timeout: "{{ matrix_common_after_systemd_service_start_wait_for_timeout_seconds }}" | ||||
|   delegate_to: 127.0.0.1 | ||||
|   become: false | ||||
|  | ||||
| - when: "ansible_distribution != 'Archlinux'" | ||||
|   block: | ||||
|     - name: Populate service facts | ||||
|       ansible.builtin.service_facts: | ||||
|  | ||||
|     - name: Fail if service isn't detected to be running | ||||
|       ansible.builtin.fail: | ||||
|         msg: >- | ||||
|           {{ item }} was not detected to be running. | ||||
|           It's possible that there's a configuration problem or another service on your server interferes with it (uses the same ports, etc.). | ||||
|           Try running `systemctl status {{ item }}` and `journalctl -fu {{ item }}` on the server to investigate. | ||||
|           If you're on a slow or overloaded server, it may be that services take a longer time to start and that this error is a false-positive. | ||||
|           You can consider raising the value of the `matrix_common_after_systemd_service_start_wait_for_timeout_seconds` variable. | ||||
|           See `roles/custom/matrix-common-after/defaults/main.yml` for more details about that. | ||||
|       with_items: "{{ matrix_systemd_services_list }}" | ||||
|       when: | ||||
|         - "item.endswith('.service') and (ansible_facts.services[item] | default(none) is none or ansible_facts.services[item].state != 'running')" | ||||
|  | ||||
| - when: "ansible_distribution == 'Archlinux'" | ||||
|   block: | ||||
|     # Currently there is a bug in ansible that renders is incompatible with systemd. | ||||
|     # service_facts is not collecting the data successfully. | ||||
|     # Therefore iterating here manually | ||||
|     - name: Fetch systemd information | ||||
|       ansible.builtin.systemd: | ||||
|         name: "{{ item }}" | ||||
|       register: systemdstatus | ||||
|       with_items: "{{ matrix_systemd_services_list }}" | ||||
|  | ||||
|     - name: Fail if service isn't detected to be running | ||||
|       ansible.builtin.fail: | ||||
|         msg: >- | ||||
|           {{ item.item }} was not detected to be running. | ||||
|           It's possible that there's a configuration problem or another service on your server interferes with it (uses the same ports, etc.). | ||||
|           Try running `systemctl status {{ item.item }}` and `journalctl -fu {{ item.item }}` on the server to investigate. | ||||
|       with_items: "{{ systemdstatus.results }}" | ||||
|       when: "item.status['ActiveState'] != 'active'" | ||||
		Reference in New Issue
	
	Block a user