From e32c90a63e05f268e388b414914123cf89276465 Mon Sep 17 00:00:00 2001 From: Alex Willmer Date: Wed, 26 Feb 2025 17:39:15 +0000 Subject: [PATCH] ci: Factor out package installation role --- tests/image_prep/_container_setup.yml | 40 +------------------ .../roles/packages/defaults/main.yml | 14 +++++++ .../image_prep/roles/packages/tasks/main.yml | 35 ++++++++++++++++ 3 files changed, 50 insertions(+), 39 deletions(-) create mode 100644 tests/image_prep/roles/packages/defaults/main.yml create mode 100644 tests/image_prep/roles/packages/tasks/main.yml diff --git a/tests/image_prep/_container_setup.yml b/tests/image_prep/_container_setup.yml index d894cd25..35bea259 100644 --- a/tests/image_prep/_container_setup.yml +++ b/tests/image_prep/_container_setup.yml @@ -22,49 +22,11 @@ roles: - role: package_manager + - role: packages - role: sshd - role: sshd_container tasks: - - name: Ensure requisite apt packages are installed - apt: - name: "{{ common_packages + packages }}" - state: present - install_recommends: false - update_cache: true - when: ansible_pkg_mgr == 'apt' - - - name: Ensure requisite yum packages are installed - yum: - name: "{{ common_packages + packages }}" - state: present - update_cache: true - when: ansible_pkg_mgr == 'yum' - - - name: Ensure requisite dnf packages are installed - dnf: - name: "{{ common_packages + packages }}" - state: present - update_cache: true - when: ansible_pkg_mgr == 'dnf' - - - name: Clean up package cache - vars: - clean_command: - apt: apt-get clean - yum: yum clean all - dnf: dnf clean all - command: "{{ clean_command[ansible_pkg_mgr] }}" - args: - warn: "{{ False if ansible_version_major_minor is version('2.10', '<=', strict=True) else omit }}" - - - name: Clean up apt package lists - shell: rm -rf {{item}}/* - with_items: - - /var/cache/apt - - /var/lib/apt/lists - when: ansible_pkg_mgr == 'apt' - - name: Configure /usr/bin/python command: alternatives --set python /usr/bin/python3.8 args: diff --git a/tests/image_prep/roles/packages/defaults/main.yml b/tests/image_prep/roles/packages/defaults/main.yml new file mode 100644 index 00000000..c6ee8cc4 --- /dev/null +++ b/tests/image_prep/roles/packages/defaults/main.yml @@ -0,0 +1,14 @@ +common_packages: [] +packages: [] + +packages_clean_command: + apt: apt-get clean + dnf: dnf clean all + yum: yum clean all + +packages_cleanup_directories: + apt: + - /var/cache/apt + - /var/lib/apt/lists + dnf: [] + yum: [] diff --git a/tests/image_prep/roles/packages/tasks/main.yml b/tests/image_prep/roles/packages/tasks/main.yml new file mode 100644 index 00000000..30076690 --- /dev/null +++ b/tests/image_prep/roles/packages/tasks/main.yml @@ -0,0 +1,35 @@ +- name: Ensure requisite apt packages are installed + apt: + name: "{{ common_packages + packages }}" + state: present + install_recommends: false + update_cache: true + when: + - ansible_pkg_mgr == 'apt' + +- name: Ensure requisite yum packages are installed + yum: + name: "{{ common_packages + packages }}" + state: present + update_cache: true + when: + - ansible_pkg_mgr == 'yum' + +- name: Ensure requisite dnf packages are installed + dnf: + name: "{{ common_packages + packages }}" + state: present + update_cache: true + when: + - ansible_pkg_mgr == 'dnf' + +- name: Clean up package cache + command: + cmd: "{{ packages_clean_command[ansible_pkg_mgr] }}" + changed_when: true + +- name: Clean up package directories + shell: + rm -rf {{ item }}/* + with_items: "{{ packages_cleanup_directories }}" + changed_when: true