From 85e8217a108722d756a745d56ab20eef694b40df Mon Sep 17 00:00:00 2001 From: Hackintosh 5 Date: Wed, 7 Apr 2021 11:29:38 +0100 Subject: [PATCH] Add support for Podman and Fedora --- roles/matrix-base/defaults/main.yml | 2 +- roles/matrix-base/tasks/server_base/setup.yml | 15 ++++++++++++ .../tasks/server_base/setup_archlinux.yml | 1 + .../tasks/server_base/setup_centos.yml | 1 + .../tasks/server_base/setup_debian.yml | 1 + .../tasks/server_base/setup_fedora.yml | 21 ++++++++++++++++ .../tasks/server_base/setup_raspbian.yml | 1 + .../templates/systemd/docker.service | 9 +++++++ .../synapse-simple-antispam/setup_install.yml | 24 ------------------- 9 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 roles/matrix-base/tasks/server_base/setup_fedora.yml create mode 100644 roles/matrix-base/templates/systemd/docker.service diff --git a/roles/matrix-base/defaults/main.yml b/roles/matrix-base/defaults/main.yml index ef30ad678..7ebfa4f73 100644 --- a/roles/matrix-base/defaults/main.yml +++ b/roles/matrix-base/defaults/main.yml @@ -137,7 +137,7 @@ matrix_well_known_matrix_server_enabled: true matrix_docker_installation_enabled: true # Controls the Docker package that is installed. -# Possible values are "docker-ce" (default) and "docker.io" (Debian). +# Possible values are "docker-ce" (default), "docker.io" (Debian) and "podman-docker" (Fedora) matrix_docker_package_name: docker-ce # Variables to Control which parts of our roles run. diff --git a/roles/matrix-base/tasks/server_base/setup.yml b/roles/matrix-base/tasks/server_base/setup.yml index a8073c260..2676a279c 100644 --- a/roles/matrix-base/tasks/server_base/setup.yml +++ b/roles/matrix-base/tasks/server_base/setup.yml @@ -3,6 +3,9 @@ - include_tasks: "{{ role_path }}/tasks/server_base/setup_centos.yml" when: ansible_distribution == 'CentOS' +- include_tasks: "{{ role_path }}/tasks/server_base/setup_fedora.yml" + when: ansible_distribution == 'Fedora' + - block: # ansible_lsb is only available if lsb-release is installed. - name: Ensure lsb-release installed @@ -27,6 +30,18 @@ - include_tasks: "{{ role_path }}/tasks/server_base/setup_archlinux.yml" when: ansible_distribution == 'Archlinux' +- name: Ensure Docker.service is available + template: + src: "{{ role_path }}/templates/systemd/docker.service" + dest: "{{ matrix_systemd_path }}/docker.service" + mode: 0644 + register: matrix_docker_systemd_service_result + +- name: Ensure systemd reloaded after docker.service installation + service: + daemon_reload: yes + when: "matrix_docker_systemd_service_result.changed|bool" + - name: Ensure Docker is started and autoruns service: name: docker diff --git a/roles/matrix-base/tasks/server_base/setup_archlinux.yml b/roles/matrix-base/tasks/server_base/setup_archlinux.yml index 3814305d6..de0b5162b 100644 --- a/roles/matrix-base/tasks/server_base/setup_archlinux.yml +++ b/roles/matrix-base/tasks/server_base/setup_archlinux.yml @@ -8,6 +8,7 @@ # TODO This needs to be verified. Which version do we need? - fuse3 - python-dnspython + - git state: latest update_cache: yes diff --git a/roles/matrix-base/tasks/server_base/setup_centos.yml b/roles/matrix-base/tasks/server_base/setup_centos.yml index 07776d7f6..93a4fef63 100644 --- a/roles/matrix-base/tasks/server_base/setup_centos.yml +++ b/roles/matrix-base/tasks/server_base/setup_centos.yml @@ -22,6 +22,7 @@ name: - "{{ matrix_ntpd_package }}" - fuse + - git state: latest update_cache: yes diff --git a/roles/matrix-base/tasks/server_base/setup_debian.yml b/roles/matrix-base/tasks/server_base/setup_debian.yml index 54e52c1b8..3ff3bd74f 100644 --- a/roles/matrix-base/tasks/server_base/setup_debian.yml +++ b/roles/matrix-base/tasks/server_base/setup_debian.yml @@ -37,6 +37,7 @@ name: - "{{ matrix_ntpd_package }}" - fuse + - git state: latest update_cache: yes diff --git a/roles/matrix-base/tasks/server_base/setup_fedora.yml b/roles/matrix-base/tasks/server_base/setup_fedora.yml new file mode 100644 index 000000000..e51fd2b30 --- /dev/null +++ b/roles/matrix-base/tasks/server_base/setup_fedora.yml @@ -0,0 +1,21 @@ +--- + +- name: Ensure dnf packages are installed + yum: + name: + - "{{ matrix_ntpd_package }}" + - fuse + - git + state: latest + update_cache: yes + +- name: Ensure Docker is installed + yum: + name: + - "{{ matrix_docker_package_name }}" + state: latest + when: matrix_docker_installation_enabled|bool + +- name: Ensure Docker python library is installed + pip: + name: docker diff --git a/roles/matrix-base/tasks/server_base/setup_raspbian.yml b/roles/matrix-base/tasks/server_base/setup_raspbian.yml index 421905a0d..2f84ba8c5 100644 --- a/roles/matrix-base/tasks/server_base/setup_raspbian.yml +++ b/roles/matrix-base/tasks/server_base/setup_raspbian.yml @@ -30,6 +30,7 @@ name: - "{{ matrix_ntpd_package }}" - fuse + - git state: latest update_cache: yes diff --git a/roles/matrix-base/templates/systemd/docker.service b/roles/matrix-base/templates/systemd/docker.service new file mode 100644 index 000000000..06cb27128 --- /dev/null +++ b/roles/matrix-base/templates/systemd/docker.service @@ -0,0 +1,9 @@ +[Unit] +Description=Start Podman Docker link + +[Service] +Restart=on-failure +TimeoutStopSec=70 +ExecStart={{ matrix_host_command_docker }} system service --time 0 +Type=simple + diff --git a/roles/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml b/roles/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml index 2599e7f1b..3d296f10f 100644 --- a/roles/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml +++ b/roles/matrix-synapse/tasks/ext/synapse-simple-antispam/setup_install.yml @@ -5,30 +5,6 @@ msg: "Synapse Simple Antispam is enabled, but no blocked homeservers have been set in matrix_synapse_ext_spam_checker_synapse_simple_antispam_config_blocked_homeservers" when: "matrix_synapse_ext_spam_checker_synapse_simple_antispam_config_blocked_homeservers|length == 0" -- name: Ensure git installed (RedHat) - yum: - name: - - git - state: present - update_cache: no - when: "ansible_os_family == 'RedHat'" - -- name: Ensure git installed (Debian) - apt: - name: - - git - state: present - update_cache: no - when: "ansible_os_family == 'Debian'" - -- name: Ensure git installed (Archlinux) - pacman: - name: - - git - state: present - update_cache: no - when: "ansible_distribution == 'Archlinux'" - - name: Clone synapse-simple-antispam git repository git: repo: "{{ matrix_synapse_ext_spam_checker_synapse_simple_antispam_git_repository_url }}"