First pass at creating defaults and tasks for Conduit
This commit is contained in:
		
							
								
								
									
										49
									
								
								roles/matrix-conduit/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								roles/matrix-conduit/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | --- | ||||||
|  | # Conduit is a simple, fast and reliable chat server powered by Matrix | ||||||
|  | # See: https://conduit.rs | ||||||
|  |  | ||||||
|  | matrix_conduit_enabled: true | ||||||
|  |  | ||||||
|  | matrix_conduit_docker_image: "{{ matrix_conduit_docker_image_name_prefix}}matrixconduit/matrix-conduit:{{ matrix_conduit_docker_image_tag }}" | ||||||
|  | matrix_conduit_docker_image_name_prefix: "docker.io/" | ||||||
|  | matrix_conduit_docker_image_tag: "v0.4.0" | ||||||
|  | matrix_conduit_docker_image_force_pull: "{{ matrix_conduit_docker_image.endswith(':latest') }}" | ||||||
|  |  | ||||||
|  | matrix_conduit_base_path: "{{ matrix_base_data_path }}/conduit" | ||||||
|  | matrix_conduit_config_dir_path: "{{ matrix_conduit_base_path }}/config" | ||||||
|  | matrix_conduit_storage_path: "{{ matrix_conduit_base_path }}/storage" | ||||||
|  |  | ||||||
|  | matrix_conduit_port_number: 6167 | ||||||
|  |  | ||||||
|  | # List of systemd services that matrix-conduit.service depends on | ||||||
|  | matrix_conduit_systemd_required_services_list: ["docker.service"] | ||||||
|  |  | ||||||
|  | # List of systemd services that matrix-conduit.service wants | ||||||
|  | matrix_conduit_systemd_wanted_services_list: [] | ||||||
|  |  | ||||||
|  | # Extra arguments for the Docker container | ||||||
|  | matrix_conduit_container_extra_arguments: [] | ||||||
|  |  | ||||||
|  | # Specifies which template files to use when configuring Conduit. | ||||||
|  | # If you'd like to have your own different configuration, feel free to copy and paste | ||||||
|  | # the original files into your inventory (e.g. in `inventory/host_vars/<host>/`) | ||||||
|  | # and then change the specific host's `vars.yaml` file like this: | ||||||
|  | # matrix_conduit_template_conduit_config: "{{ playbook_dir }}/inventory/host_vars/<host>/conduit.yaml.j2" | ||||||
|  | matrix_conduit_template_conduit_config: "{{ role_path }}/templates/conduit/conduit.toml.j2" | ||||||
|  |  | ||||||
|  | # Max size for uploads, in bytes | ||||||
|  | matrix_conduit_max_request_size: "20_000_000" | ||||||
|  |  | ||||||
|  | # Enables registration. If set to false, no users can register on this server. | ||||||
|  | matrix_conduit_allow_registration: true | ||||||
|  |  | ||||||
|  | matrix_conduit_allow_federation: true | ||||||
|  |  | ||||||
|  | # Enable the display name lightning bolt on registration. | ||||||
|  | matrix_conduit_enable_lightning_bolt: true | ||||||
|  |  | ||||||
|  | matrix_conduit_trusted_servers: | ||||||
|  |  - "matrix.org" | ||||||
|  |  | ||||||
|  | # How many requests Conduit sends to other servers at the same time | ||||||
|  | matrix_conduit_max_concurrent_requests: 100 | ||||||
							
								
								
									
										7
									
								
								roles/matrix-conduit/tasks/conduit/setup.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								roles/matrix-conduit/tasks/conduit/setup.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | - import_tasks: "{{ role_path }}/tasks/conduit/setup_install.yml" | ||||||
|  |   when: matrix_conduit_enabled|bool | ||||||
|  |  | ||||||
|  | - import_tasks: "{{ role_path }}/tasks/conduit/setup_uninstall.yml" | ||||||
|  |   when: "not matrix_conduit_enabled|bool" | ||||||
							
								
								
									
										31
									
								
								roles/matrix-conduit/tasks/conduit/setup_install.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								roles/matrix-conduit/tasks/conduit/setup_install.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | --- | ||||||
|  | - name: Ensure Conduit Docker image is pulled | ||||||
|  |   docker_image: | ||||||
|  |     name: "{{ matrix_conduit_docker_image }}" | ||||||
|  |     source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" | ||||||
|  |     force_source: "{{ matrix_conduit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" | ||||||
|  |     force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduit_docker_image_force_pull }}" | ||||||
|  |   register: result | ||||||
|  |   retries: "{{ matrix_container_retries_count }}" | ||||||
|  |   delay: "{{ matrix_container_retries_delay }}" | ||||||
|  |   until: result is not failed | ||||||
|  |  | ||||||
|  | - name: Ensure Conduit configuration installed | ||||||
|  |   template: | ||||||
|  |     src: "{{ role_path }}/templates/conduit/conduit.toml.j2" | ||||||
|  |     dest: "{{ matrix_conduit_config_dir_path }}/conduit.toml" | ||||||
|  |     mode: 0644 | ||||||
|  |     owner: "{{ matrix_user_username }}" | ||||||
|  |     group: "{{ matrix_user_groupname }}" | ||||||
|  |  | ||||||
|  | - name: Ensure matrix-conduit.service installed | ||||||
|  |   template: | ||||||
|  |     src: "{{ role_path }}/templates/conduit/systemd/matrix-conduit.service.j2" | ||||||
|  |     dest: "{{ matrix_systemd_path }}/matrix-conduit.service" | ||||||
|  |     mode: 0644 | ||||||
|  |   register: matrix_conduit_systemd_service_result | ||||||
|  |  | ||||||
|  | - name: Ensure systemd reloaded after matrix-conduit.service installation | ||||||
|  |   service: | ||||||
|  |     daemon_reload: true | ||||||
|  |   when: "matrix_conduit_systemd_service_result.changed|bool" | ||||||
							
								
								
									
										30
									
								
								roles/matrix-conduit/tasks/conduit/setup_uninstall.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								roles/matrix-conduit/tasks/conduit/setup_uninstall.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | - name: Check existence of matrix-conduit service | ||||||
|  |   stat: | ||||||
|  |     path: "{{ matrix_systemd_path }}/matrix-conduit.service" | ||||||
|  |   register: matrix_conduit_service_stat | ||||||
|  |  | ||||||
|  | - name: Ensure matrix-conduit is stopped | ||||||
|  |   service: | ||||||
|  |     name: matrix-conduit | ||||||
|  |     state: stopped | ||||||
|  |     daemon_reload: true | ||||||
|  |   register: stopping_result | ||||||
|  |   when: "matrix_conduit_service_stat.stat.exists" | ||||||
|  |  | ||||||
|  | - name: Ensure matrix-conduit.service doesn't exist | ||||||
|  |   file: | ||||||
|  |     path: "{{ matrix_systemd_path }}/matrix-conduit.service" | ||||||
|  |     state: absent | ||||||
|  |   when: "matrix_conduit_service_stat.stat.exists" | ||||||
|  |  | ||||||
|  | - name: Ensure systemd reloaded after matrix-conduit.service removal | ||||||
|  |   service: | ||||||
|  |     daemon_reload: true | ||||||
|  |   when: "matrix_conduit_service_stat.stat.exists" | ||||||
|  |  | ||||||
|  | - name: Ensure Conduit Docker image doesn't exist | ||||||
|  |   docker_image: | ||||||
|  |     name: "{{ matrix_conduit_docker_image }}" | ||||||
|  |     state: absent | ||||||
							
								
								
									
										5
									
								
								roles/matrix-conduit/tasks/init.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								roles/matrix-conduit/tasks/init.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | - set_fact: | ||||||
|  |     matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-conduit.service'] }}" | ||||||
|  |   when: matrix_conduit_enabled|bool | ||||||
							
								
								
									
										17
									
								
								roles/matrix-conduit/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/matrix-conduit/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | --- | ||||||
|  |  | ||||||
|  | - import_tasks: "{{ role_path }}/tasks/init.yml" | ||||||
|  |   tags: | ||||||
|  |     - always | ||||||
|  |  | ||||||
|  | - import_tasks: "{{ role_path }}/tasks/setup_conduit.yml" | ||||||
|  |   when: run_setup|bool | ||||||
|  |   tags: | ||||||
|  |     - setup-all | ||||||
|  |     - setup-conduit | ||||||
|  |  | ||||||
|  | - name: Mark matrix-conduit role as executed | ||||||
|  |   set_fact: | ||||||
|  |     matrix_conduit_role_executed: true | ||||||
|  |   tags: | ||||||
|  |     - always | ||||||
							
								
								
									
										14
									
								
								roles/matrix-conduit/tasks/setup_conduit.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/matrix-conduit/tasks/setup_conduit.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | --- | ||||||
|  | - name: Ensure Conduit paths exist | ||||||
|  |   file: | ||||||
|  |     path: "{{ item.path }}" | ||||||
|  |     state: directory | ||||||
|  |     mode: 0750 | ||||||
|  |     owner: "{{ matrix_user_username }}" | ||||||
|  |     group: "{{ matrix_user_groupname }}" | ||||||
|  |   with_items: | ||||||
|  |     - {path: "{{ matrix_conduit_config_dir_path }}", when: true} | ||||||
|  |     - {path: "{{ matrix_conduit_data_dir_path }}", when: true} | ||||||
|  |   when: "matrix_conduit_enabled|bool and item.when" | ||||||
|  |  | ||||||
|  | - import_tasks: "{{ role_path }}/tasks/conduit/setup.yml" | ||||||
		Reference in New Issue
	
	Block a user