diff --git a/defaults/main.yml b/defaults/main.yml index 01622b57f2fdd2a8fd980194f21b18e0d7c7b4cd..92723cb361d7943c9a03ea8c0c1d7748a070701e 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 68f22562718449dd3fd2e560245ce0af836e8427..bb2eda5b76cba24f0e4d737832c3ee4cb09c85e5 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 6174d633d968aadddf9c22b1cfe594f2395ef73f..ad548cf419f52752485b0a2f36ffdc03e9d069ee 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 a9a78eaa04ed6e6c835ea2757eb88ab22e6d21f8..a4603cc904570c5cf30a3c3e5c328275a482d022 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: