summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CLAUDE.md25
-rw-r--r--roles/docker/tasks/main.yml7
-rw-r--r--roles/docker/vars/archlinux.yml3
-rw-r--r--roles/docker/vars/debian.yml3
-rw-r--r--roles/python/tasks/main.yml5
-rw-r--r--roles/python/vars/archlinux.yml2
-rw-r--r--roles/python/vars/debian.yml2
-rw-r--r--roles/wireguard_gateway/tasks/main.yml10
8 files changed, 54 insertions, 3 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 69e13d85..82474d1a 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -22,6 +22,31 @@ ansible-playbook site.yml --ask-become-pass
ansible all -m ping
```
+**Run molecule testing:**
+
+```bash
+# Run full test suite for a specific scenario
+molecule test -s archlinux
+molecule test -s ubuntu
+molecule test -s debian
+molecule test -s raspberrypi
+
+# Run specific test phases
+molecule converge -s archlinux # Run converge only
+molecule idempotence -s archlinux # Run idempotence test only
+molecule verify -s archlinux # Run verify only
+```
+
+**Debug molecule testing on remote machine:**
+
+```bash
+# Copy to remote machine for debugging
+rsync -r . archlinux.local:/opt/ansible-distro-configure
+
+# Run on remote machine with proper PATH
+ssh archlinux.local "cd /opt/ansible-distro-configure && PATH=~/.local/bin:\$PATH ~/.local/bin/molecule test -s archlinux"
+```
+
## Architecture Overview
This is an Ansible configuration management repository for multiple Linux distributions
diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml
index 07a84bca..88ce41c1 100644
--- a/roles/docker/tasks/main.yml
+++ b/roles/docker/tasks/main.yml
@@ -1,14 +1,17 @@
---
+- name: "Include OS-specific variables"
+ ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml"
+
- name: "Install Docker"
become: true
ansible.builtin.package:
- name: "docker"
+ name: "{{ docker_package }}"
state: "present"
- name: "Enable and start Docker service"
become: true
ansible.builtin.systemd:
- name: "docker"
+ name: "{{ docker_service }}"
enabled: true
state: "started"
diff --git a/roles/docker/vars/archlinux.yml b/roles/docker/vars/archlinux.yml
new file mode 100644
index 00000000..d9b26420
--- /dev/null
+++ b/roles/docker/vars/archlinux.yml
@@ -0,0 +1,3 @@
+---
+docker_package: "docker"
+docker_service: "docker"
diff --git a/roles/docker/vars/debian.yml b/roles/docker/vars/debian.yml
new file mode 100644
index 00000000..52163a70
--- /dev/null
+++ b/roles/docker/vars/debian.yml
@@ -0,0 +1,3 @@
+---
+docker_package: "docker.io"
+docker_service: "docker"
diff --git a/roles/python/tasks/main.yml b/roles/python/tasks/main.yml
index 686e99a9..18313a17 100644
--- a/roles/python/tasks/main.yml
+++ b/roles/python/tasks/main.yml
@@ -1,4 +1,7 @@
---
+- name: "Include OS-specific variables"
+ ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml"
+
- name: "Install pyenv and pipx"
community.general.homebrew:
name:
@@ -79,5 +82,5 @@
- name: "Install packaging for community.general.pipx version installs"
become: true
ansible.builtin.package:
- name: "python-packaging"
+ name: "{{ python_packaging }}"
state: "present"
diff --git a/roles/python/vars/archlinux.yml b/roles/python/vars/archlinux.yml
new file mode 100644
index 00000000..49cedb43
--- /dev/null
+++ b/roles/python/vars/archlinux.yml
@@ -0,0 +1,2 @@
+---
+python_packaging: "python-packaging"
diff --git a/roles/python/vars/debian.yml b/roles/python/vars/debian.yml
new file mode 100644
index 00000000..2fb30364
--- /dev/null
+++ b/roles/python/vars/debian.yml
@@ -0,0 +1,2 @@
+---
+python_packaging: "python3-packaging"
diff --git a/roles/wireguard_gateway/tasks/main.yml b/roles/wireguard_gateway/tasks/main.yml
index a4d187c3..11345134 100644
--- a/roles/wireguard_gateway/tasks/main.yml
+++ b/roles/wireguard_gateway/tasks/main.yml
@@ -1,4 +1,12 @@
---
+- name: "Debug IPv4 and IPv6 network facts"
+ ansible.builtin.debug:
+ msg:
+ - "IPv4 default: {{ ansible_default_ipv4 | default('undefined') }}"
+ - "IPv6 default: {{ ansible_default_ipv6 | default('undefined') }}"
+ - "All IPv4: {{ ansible_all_ipv4_addresses | default('undefined') }}"
+ - "All IPv6: {{ ansible_all_ipv6_addresses | default('undefined') }}"
+
- name: "Ensure iptables are installed"
become: true
ansible.builtin.package:
@@ -65,6 +73,7 @@
ip_version: "ipv6"
state: "{{ 'present' if wireguard_gateway_enabled else 'absent' }}"
with_items: "{{ wireguard_connections }}"
+ when: ansible_default_ipv6 is defined and ansible_default_ipv6.address is defined
failed_when: false
- name: "Add IPv6 FORWARD rule to accept traffic from local subnet"
@@ -76,6 +85,7 @@
comment: "Allow IPv6 forwarding from local subnet"
ip_version: "ipv6"
state: "{{ 'present' if wireguard_gateway_enabled else 'absent' }}"
+ when: ansible_default_ipv6 is defined and ansible_default_ipv6.address is defined
failed_when: false
- name: "Add IPv6 FORWARD rule to accept established connections"