5 Commits

Author SHA1 Message Date
Daniel Akulenok
77212eef9b improve molecule
Some checks failed
Test / Lint (push) Failing after 1m40s
Test / Test (push) Has been skipped
2026-02-12 15:05:51 +01:00
Daniel Akulenok
79ac474a85 Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role
All checks were successful
Test / Lint (push) Successful in 15s
Test / Test (push) Has been skipped
2026-02-09 12:34:04 +01:00
abd150f581 Merge pull request 'Fix default Molecule scenario and add testing skill' (#18) from fix/molecule-default-test into main
All checks were successful
Test / Lint (push) Successful in 16s
Test / Test (push) Has been skipped
Reviewed-on: #18
2026-02-09 11:33:11 +00:00
Daniel Akulenok
cb20db00af Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role
All checks were successful
Test / Lint (push) Successful in 17s
Test / Test (push) Has been skipped
2026-02-09 12:17:45 +01:00
Daniel Akulenok
07f84b7c96 Fix Molecule default scenario tests
Some checks failed
Test / Lint (pull_request) Successful in 16s
Test / Test (pull_request) Failing after 2m12s
2026-02-08 20:43:56 +01:00
5 changed files with 61 additions and 13 deletions

View File

@@ -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.

View File

@@ -1,19 +1,10 @@
--- ---
- name: Converge - name: Converge
hosts: all hosts: all
tasks: roles:
- name: Create log directory for BIND - ansible-bind9-role
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: vars:
bind9_log_dir: /var/log/named
bind9_backup_config: false bind9_backup_config: false
bind9_host_config: bind9_host_config:
- name: named.conf.options - name: named.conf.options
@@ -113,3 +104,14 @@
forwarders: forwarders:
- 10.0.0.53 - 10.0.0.53
- 10.0.0.54 - 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

View File

@@ -11,6 +11,8 @@ platforms:
cgroupns_mode: host cgroupns_mode: host
provisioner: provisioner:
name: ansible name: ansible
env:
ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/..
config_options: config_options:
defaults: defaults:
ALLOW_BROKEN_CONDITIONALS: true ALLOW_BROKEN_CONDITIONALS: true

View File

@@ -41,7 +41,8 @@
ansible.builtin.assert: ansible.builtin.assert:
that: that:
- "'forwarders' in __options_decoded" - "'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" - "'forward first' in __options_decoded"
fail_msg: Forwarders not properly configured in named.conf.options fail_msg: Forwarders not properly configured in named.conf.options
vars: vars:

View File

@@ -18,6 +18,17 @@
mode: "0750" mode: "0750"
when: bind9_backup_config is defined and bind9_backup_config | bool 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 - name: Deploy and Validate Configuration
tags: tags:
- bind9 - bind9
@@ -34,6 +45,7 @@
owner: root owner: root
group: bind group: bind
mode: "0640" mode: "0640"
when: bind9_backup_config | bool
changed_when: false changed_when: false
failed_when: false # It's okay if the file doesn't exist yet failed_when: false # It's okay if the file doesn't exist yet
loop: "{{ bind9_config }}" loop: "{{ bind9_config }}"