From e8fe43bf880ec760f14a180e416de052cec52b7c 2025-01-22 15:00:46 From: Branko Majic <branko@majic.rs> Date: 2025-01-22 15:00:46 Subject: [PATCH] MAR-233: Add IPv6 connectivity tests for the web_server role. --- diff --git a/roles/web_server/molecule/default/molecule.yml b/roles/web_server/molecule/default/molecule.yml index 481c25637a38f22d43e05d5ea678e8222d341673..7280e8470e86f02f0be4e1a1d18a21e38a4a1c6e 100644 --- a/roles/web_server/molecule/default/molecule.yml +++ b/roles/web_server/molecule/default/molecule.yml @@ -20,6 +20,11 @@ platforms: ip: 192.168.56.11 network_name: private_network type: static + - auto_config: true + ip: fd00::192:168:56:11 + network_name: private_network + netmask: 116 + type: static - name: parameters-mandatory-bookworm groups: @@ -33,6 +38,11 @@ platforms: ip: 192.168.56.21 network_name: private_network type: static + - auto_config: true + ip: fd00::192:168:56:21 + network_name: private_network + netmask: 116 + type: static - name: parameters-optional-bookworm groups: @@ -46,6 +56,11 @@ platforms: ip: 192.168.56.22 network_name: private_network type: static + - auto_config: true + ip: fd00::192:168:56:22 + network_name: private_network + netmask: 116 + type: static provisioner: name: ansible diff --git a/roles/web_server/molecule/default/prepare.yml b/roles/web_server/molecule/default/prepare.yml index 40479c7a738b699d7425dbdb79f43fa7c28396d3..357f781e54638dd31f20d6e06c3fa34934fed0c3 100644 --- a/roles/web_server/molecule/default/prepare.yml +++ b/roles/web_server/molecule/default/prepare.yml @@ -74,6 +74,9 @@ 192.168.56.11: "client" 192.168.56.21: "parameters-mandatory-bookworm" 192.168.56.22: "parameters-optional-bookworm" + fd00::192:168:56:11: "client" + fd00::192:168:56:21: "parameters-mandatory-bookworm" + fd00::192:168:56:22: "parameters-optional-bookworm" - name: Install curl for testing redirects and webpage content ansible.builtin.apt: diff --git a/roles/web_server/molecule/default/tests/test_client.py b/roles/web_server/molecule/default/tests/test_client.py index 1a1955c595721759ccab012c607504a7f045af3f..5ed942f8d5c94c92de3f7020fc1da3093dccb678 100644 --- a/roles/web_server/molecule/default/tests/test_client.py +++ b/roles/web_server/molecule/default/tests/test_client.py @@ -13,13 +13,14 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-*') ) @pytest.mark.parametrize('port', [80, 443]) -def test_connectivity(host, server, port): +@pytest.mark.parametrize('ip_protocol', [4, 6]) +def test_connectivity(host, server, port, ip_protocol): """ Tests connectivity to the web server (ports that should be reachable). """ with host.sudo(): - scan = host.run('nmap -4 -p %s -oG - %s', str(port), server) + scan = host.run('nmap -%s -p %s -oG - %s', str(ip_protocol), str(port), server) assert scan.rc == 0 assert "Ports: %d/open/tcp//" % port in scan.stdout