From 9f0a7fd688dc42ad0b2e1420159c9f91b8674cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Dom=C3=ADnguez?= Date: Mon, 11 Dec 2023 14:58:39 +0100 Subject: [PATCH 1/3] Make galaxyproject.gxadmin role install its own dependencies Add tasks that invoke the system's package manager to install all packages the role needs to run. Let said tasks be disabled via boolean role variables (they default to enabled). --- defaults/main.yml | 4 ++++ tasks/main.yml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/defaults/main.yml b/defaults/main.yml index 90ce022..5956b60 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -4,3 +4,7 @@ gxadmin_bin_dir: "/usr/local/bin" gxadmin_config_dir: "~/.config" gxadmin_create_bin_dir: true gxadmin_repo: "https://github.com/galaxyproject/gxadmin.git" + +gxadmin_manage_dependencies: true # install packages the role needs to run +gxadmin_manage_apt_cache: true # update APT cache if outdated +gxadmin_apt_cache_valid_time: 604800 # time the APT cache is considered valid diff --git a/tasks/main.yml b/tasks/main.yml index 4323b8e..2ce8794 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,4 +1,35 @@ --- +- name: Update apt cache (Debian derivatives) + become: true + ansible.builtin.apt: + cache_valid_time: "{{ gxadmin_apt_cache_valid_time }}" + when: >- + ansible_os_family == "Debian" + and gxadmin_manage_dependencies + and gxadmin_manage_apt_cache + +- name: Ensure role and gxadmin dependencies are installed + become: true + ansible.builtin.package: + name: + - git + - make + state: present + when: gxadmin_manage_dependencies + +- name: Ensure role and gxadmin dependencies are installed (EL) + become: true + ansible.builtin.package: + name: postgresql + state: present + when: ansible_os_family == "RedHat" and gxadmin_manage_dependencies + +- name: Ensure role and gxadmin dependencies are installed (Debian derivatives) + become: true + ansible.builtin.package: + name: postgresql-client + state: present + when: ansible_os_family == "Debian" and gxadmin_manage_dependencies - name: Clone gxadmin repository ansible.builtin.git: From d358f7a669df5bbb6e2a9720bf50f7ae94d2ad32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Dom=C3=ADnguez?= Date: Mon, 11 Dec 2023 15:55:49 +0100 Subject: [PATCH 2/3] Remove debian specific role variables Remove the `gxadmin_manage_apt_cache` and `gxadmin_apt_cache_valid_time` role variables. --- defaults/main.yml | 2 -- tasks/main.yml | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 5956b60..843d468 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -6,5 +6,3 @@ gxadmin_create_bin_dir: true gxadmin_repo: "https://github.com/galaxyproject/gxadmin.git" gxadmin_manage_dependencies: true # install packages the role needs to run -gxadmin_manage_apt_cache: true # update APT cache if outdated -gxadmin_apt_cache_valid_time: 604800 # time the APT cache is considered valid diff --git a/tasks/main.yml b/tasks/main.yml index 2ce8794..678392f 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -2,11 +2,10 @@ - name: Update apt cache (Debian derivatives) become: true ansible.builtin.apt: - cache_valid_time: "{{ gxadmin_apt_cache_valid_time }}" + cache_valid_time: 604800 when: >- ansible_os_family == "Debian" and gxadmin_manage_dependencies - and gxadmin_manage_apt_cache - name: Ensure role and gxadmin dependencies are installed become: true From 9e6942aaf0110e677019399afdd178a228da134f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Dom=C3=ADnguez?= Date: Mon, 11 Dec 2023 15:56:43 +0100 Subject: [PATCH 3/3] Merge dependency management tasks for EL and Debian derivatives --- tasks/main.yml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index 678392f..26b7660 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -13,23 +13,10 @@ name: - git - make + - "postgresql{{ '-client' if ansible_os_family == 'Debian' }}" state: present when: gxadmin_manage_dependencies -- name: Ensure role and gxadmin dependencies are installed (EL) - become: true - ansible.builtin.package: - name: postgresql - state: present - when: ansible_os_family == "RedHat" and gxadmin_manage_dependencies - -- name: Ensure role and gxadmin dependencies are installed (Debian derivatives) - become: true - ansible.builtin.package: - name: postgresql-client - state: present - when: ansible_os_family == "Debian" and gxadmin_manage_dependencies - - name: Clone gxadmin repository ansible.builtin.git: repo: "{{ gxadmin_repo }}"