From 07f84b7c96e1aa96a31120f71d2c9c0849912984 Mon Sep 17 00:00:00 2001 From: Daniel Akulenok Date: Sun, 8 Feb 2026 20:43:56 +0100 Subject: [PATCH] Fix Molecule default scenario tests --- .github/skills/molecule-role-testing/SKILL.md | 31 +++++++++++++++++++ molecule/default/converge.yml | 20 +++++++----- molecule/default/verify.yml | 3 +- tasks/main.yml | 12 +++++++ 4 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 .github/skills/molecule-role-testing/SKILL.md diff --git a/.github/skills/molecule-role-testing/SKILL.md b/.github/skills/molecule-role-testing/SKILL.md new file mode 100644 index 0000000..8a85aa7 --- /dev/null +++ b/.github/skills/molecule-role-testing/SKILL.md @@ -0,0 +1,31 @@ +--- +name: molecule-role-testing +description: Run Molecule scenarios to test the bind9 role using the repository's Molecule configuration. +--- + +Use this skill when asked to test or validate the role with Molecule. + +## Scope +- Repository root: /home/alive/Code/ansible-bind9-role +- Scenarios: molecule/default and molecule/bind9-20 +- Driver: podman + +## Prerequisites +1. Ensure Podman is available and the current user can run it. +2. Ensure Molecule and Ansible are installed in the active Python environment. + +## Default scenario (BIND 9.18 LTS) +1. From the repository root, run: + - molecule test +2. If a faster check is requested, run: + - molecule converge + +## BIND 9.20+ scenario +1. From the repository root, run: + - molecule test -s bind9-20 +2. If a faster check is requested, run: + - molecule converge -s bind9-20 + +## Notes +- The scenarios use systemd-enabled containers and require privileged Podman. +- If a scenario fails, capture the error summary and relevant logs before making changes. diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 2344860..89103ff 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -2,18 +2,11 @@ - name: Converge hosts: all tasks: - - name: Create log directory for BIND - ansible.builtin.file: - path: /var/log/named - state: directory - mode: '0755' - owner: bind - group: bind - - name: Include bind9 role ansible.builtin.include_role: name: ../../../ansible-bind9-role # noqa: role-name[path] vars: + bind9_log_dir: /var/log/named bind9_backup_config: false bind9_host_config: - name: named.conf.options @@ -113,3 +106,14 @@ forwarders: - 10.0.0.53 - 10.0.0.54 + +- name: Post-converge + hosts: all + tasks: + - name: Create log directory for BIND + ansible.builtin.file: + path: /var/log/named + state: directory + mode: '0750' + owner: bind + group: bind diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml index da4dae3..43211b0 100644 --- a/molecule/default/verify.yml +++ b/molecule/default/verify.yml @@ -41,7 +41,8 @@ ansible.builtin.assert: that: - "'forwarders' in __options_decoded" - - "'8.8.8.8' in __options_decoded" + - "'91.239.100.100' in __options_decoded" + - "'89.233.43.71' in __options_decoded" - "'forward first' in __options_decoded" fail_msg: Forwarders not properly configured in named.conf.options vars: diff --git a/tasks/main.yml b/tasks/main.yml index d6f2ed4..909860b 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -18,6 +18,17 @@ mode: "0750" when: bind9_backup_config is defined and bind9_backup_config | bool +- name: Ensure logging directory exists if defined + ansible.builtin.file: + path: "{{ bind9_log_dir }}" + state: directory + owner: bind + group: bind + mode: "0750" + when: + - bind9_log_dir is defined + - bind9_log_dir is not none + - name: Deploy and Validate Configuration tags: - bind9 @@ -34,6 +45,7 @@ owner: root group: bind mode: "0640" + when: bind9_backup_config | bool changed_when: false failed_when: false # It's okay if the file doesn't exist yet loop: "{{ bind9_config }}" -- 2.49.1