From 793cdcbaab533876ffab33c57e75a737b00f55e4 Mon Sep 17 00:00:00 2001 From: Chris Croome <chris@webarchitects.co.uk> Date: Mon, 27 Jan 2025 10:51:34 +0000 Subject: [PATCH] require backports list --- defaults/main.yml | 14 +++++----- meta/argument_specs.yml | 2 +- tasks/main.yml | 1 + tasks/pkg.yml | 57 +++++++++++++++++------------------------ 4 files changed, 34 insertions(+), 40 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 01622b5..92723cb 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -12,25 +12,27 @@ valkey: false valkey_enabled: true valkey_pkgs: - name: bookworm - pkgs_present: [] + pkgs_absent: + - redis-server + - redis-tools pkgs_present_backports: - valkey-server - valkey-tools + pkgs_present: [] + - name: noble pkgs_absent: - redis-server - redis-tools - - name: noble + pkgs_present_backports: [] pkgs_present: - valkey-server - valkey-tools + - name: trixie pkgs_absent: - redis-server - redis-tools - - name: trixie + pkgs_present_backports: [] pkgs_present: - valkey-server - valkey-tools - pkgs_absent: - - redis-server - - redis-tools ... diff --git a/meta/argument_specs.yml b/meta/argument_specs.yml index 68f2256..bb2eda5 100644 --- a/meta/argument_specs.yml +++ b/meta/argument_specs.yml @@ -50,7 +50,7 @@ argument_specs: description: A list of deb packages that should be present. pkgs_present_backports: type: list - required: false + required: true description: A list of deb packages that should be present from backports. valkey_verify: type: bool diff --git a/tasks/main.yml b/tasks/main.yml index 6174d63..ad548cf 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -29,6 +29,7 @@ - name: Include Valkey package tasks ansible.builtin.include_tasks: pkg.yml tags: + - valkey_install - valkey_pkg when: valkey | bool diff --git a/tasks/pkg.yml b/tasks/pkg.yml index a9a78ea..a4603cc 100644 --- a/tasks/pkg.yml +++ b/tasks/pkg.yml @@ -11,6 +11,19 @@ - name: Valkey packages present and absent block: + - name: Update apt cache + ansible.builtin.apt: + update_cache: true + check_mode: false + changed_when: false + + - name: Requirements present + ansible.builtin.apt: + pkg: + - gnupg + - python3-debian + state: present + - name: Update package facts ansible.builtin.package_facts: manager: apt @@ -34,18 +47,6 @@ The distro {{ ansible_facts.distribution_release }} needs to be listed in the valkey_pkgs array, currently the array contains {{ (valkey_pkgs | community.general.json_query('[].name')) | join(', ') }} - - name: Update apt cache - ansible.builtin.apt: - update_cache: true - check_mode: false - changed_when: false - - - name: Run apt-cache policy - ansible.builtin.command: apt-cache policy - check_mode: false - changed_when: false - register: valkey_apt_cache_policy - - name: Debug packages absent JMESPath query ansible.builtin.debug: var: valkey_jpq.pkgs_absent @@ -81,30 +82,20 @@ var: valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present) verbosity: "{% if ansible_check_mode | bool or ansible_diff_mode | bool %}0{% else %}1{% endif %}" - - name: Check that lists of packages present and absent are defined + - name: Run apt-cache policy + ansible.builtin.command: apt-cache policy + check_mode: false + changed_when: false + register: valkey_apt_cache_policy + + - name: Check that backports are available when backports packages are specified ansible.builtin.assert: that: - - (valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_absent)) | type_debug == "list" - - (valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present)) | type_debug == "list" + - valkey_apt_backports in valkey_apt_cache_policy.stdout quiet: "{% if ansible_check_mode or ansible_verbosity >= 1 %}false{% else %}true{% endif %}" - - - name: Backports checks - block: - - - name: Check that backport packages present is a list when defined - ansible.builtin.assert: - that: - - (valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present_backports)) | type_debug == "list" - quiet: "{% if ansible_check_mode or ansible_verbosity >= 1 %}false{% else %}true{% endif %}" - - - name: Check that backports are available when backports packages are specified - ansible.builtin.assert: - that: - - valkey_apt_backports in valkey_apt_cache_policy.stdout - quiet: "{% if ansible_check_mode or ansible_verbosity >= 1 %}false{% else %}true{% endif %}" - when: valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present_backports) != [] - - when: valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present_backports) is defined + when: + - valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present_backports) is defined + - valkey_pkgs | community.general.json_query(valkey_jpq.pkgs_present_backports) != [] - name: Valkey packages absent ansible.builtin.apt: -- GitLab