Move standard package lists to __mariadb_packages vars; clarify test guards

- Define __mariadb_packages (+ __mariadb_packages_mdbf for RedHat) in vars/ and
  set_fact them in variables.yml, matching the role's variable pattern; install
  tasks now use `mariadb_packages + mariadb_packages_extra` for clearer diffs
  and user-overridable base lists.
- Comment why rsync is used as the extra test package.
- Verify guard: use `mariadb_packages_extra | length > 0` (drop redundant
  default([]) since defaults/main.yml already provides []); comment why the
  explicit boolean is needed (ansible-core 2.19 rejects a non-boolean when:).
This commit is contained in:
Kalle Kiviaho 2026-07-24 09:50:57 +02:00
parent 16b62c9856
commit a4c8559e4c
9 changed files with 40 additions and 6 deletions

View File

@ -3,6 +3,8 @@ mariadb_server_id: 1
mariadb_bind_address: 0.0.0.0
mariadb_replication_role: primary
# rsync is an arbitrary, lightweight package available in every target distro's
# repos; it exercises the mariadb_packages_extra path without pulling in anything heavy.
mariadb_packages_extra:
- rsync

View File

@ -20,19 +20,22 @@
that: not pkg_status.changed
fail_msg: "{{ mariadb_server_package }} is not installed"
# `when: mariadb_packages_extra` relied on a list being implicitly truthy.
# ansible-core 2.19 rejects a non-boolean `when:` as an error, so the
# "list is non-empty" check must be explicit: `| length > 0`.
- name: Verify extra packages status
ansible.builtin.package:
name: "{{ mariadb_packages_extra }}"
state: present
check_mode: true
register: extra_pkg_status
when: mariadb_packages_extra | default([]) | length > 0
when: mariadb_packages_extra | length > 0
- name: Check that extra packages are installed
ansible.builtin.assert:
that: not extra_pkg_status.changed
fail_msg: "extra packages {{ mariadb_packages_extra }} are not installed"
when: mariadb_packages_extra | default([]) | length > 0
when: mariadb_packages_extra | length > 0
- name: Register {{ mariadb_config_file }}
ansible.builtin.stat:

View File

@ -1,7 +1,7 @@
---
- name: Install packages (package)
ansible.builtin.package:
name: "{{ [mariadb_server_package, 'mariadb-backup', 'mariadb-client', 'py3-pymysql'] + mariadb_packages_extra }}"
name: "{{ mariadb_packages + mariadb_packages_extra }}"
state: present
notify: Setup MariaDB

View File

@ -77,6 +77,6 @@
- name: Install packages (apt)
ansible.builtin.apt:
package: "{{ [mariadb_server_package, 'mariadb-backup', 'python3-pymysql'] + mariadb_packages_extra }}"
package: "{{ mariadb_packages + mariadb_packages_extra }}"
state: present
update_cache: true

View File

@ -22,13 +22,13 @@
- name: Install packages (dnf)
ansible.builtin.dnf:
name: "{{ [mariadb_server_package, 'mariadb-backup', 'python3-PyMySQL'] + mariadb_packages_extra }}"
name: "{{ mariadb_packages + mariadb_packages_extra }}"
state: present
when: not mariadb_use_official_repo
- name: Install packages (dnf/mdbf repo)
ansible.builtin.dnf:
name: "{{ [mariadb_server_package_mdbf, 'MariaDB-backup', 'python3-PyMySQL'] + mariadb_packages_extra }}"
name: "{{ mariadb_packages_mdbf + mariadb_packages_extra }}"
state: present
when: mariadb_use_official_repo

View File

@ -28,6 +28,18 @@
- ansible_facts.os_family == "RedHat"
- mariadb_server_package_mdbf is not defined
- name: Define mariadb_packages.
ansible.builtin.set_fact:
mariadb_packages: "{{ __mariadb_packages }}"
when: mariadb_packages is not defined
- name: Define mariadb_packages_mdbf.
ansible.builtin.set_fact:
mariadb_packages_mdbf: "{{ __mariadb_packages_mdbf }}"
when:
- ansible_facts.os_family == "RedHat"
- mariadb_packages_mdbf is not defined
- name: Define mariadb_config_file.
ansible.builtin.set_fact:
mariadb_config_file: "{{ __mariadb_config_file }}"

View File

@ -8,3 +8,8 @@ __mariadb_unix_socket: "/run/mysqld/mysqld.sock"
__mariadb_log_dir: "/var/log/mariadb"
__mariadb_log_error_file: "{{ mariadb_log_dir }}/error.log"
__mariadb_cron_package_name: "cronie"
__mariadb_packages:
- "{{ mariadb_server_package }}"
- mariadb-backup
- mariadb-client
- py3-pymysql

View File

@ -8,3 +8,7 @@ __mariadb_unix_socket: "/run/mysqld/mysqld.sock"
__mariadb_log_dir: "/var/log/mysql"
__mariadb_log_error_file: "{{ mariadb_log_dir }}/error.log"
__mariadb_cron_package_name: "cron"
__mariadb_packages:
- "{{ mariadb_server_package }}"
- mariadb-backup
- python3-pymysql

View File

@ -9,3 +9,11 @@ __mariadb_unix_socket: "/var/lib/mysql/mysql.sock"
__mariadb_log_dir: "/var/log/mariadb"
__mariadb_log_error_file: "{{ mariadb_log_dir }}/error.log"
__mariadb_cron_package_name: "cronie"
__mariadb_packages:
- "{{ mariadb_server_package }}"
- mariadb-backup
- python3-PyMySQL
__mariadb_packages_mdbf:
- "{{ mariadb_server_package_mdbf }}"
- MariaDB-backup
- python3-PyMySQL