diff options
Diffstat (limited to 'roles/firewall/tasks/verify.yml')
| -rw-r--r-- | roles/firewall/tasks/verify.yml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/roles/firewall/tasks/verify.yml b/roles/firewall/tasks/verify.yml new file mode 100644 index 0000000..c2e3281 --- /dev/null +++ b/roles/firewall/tasks/verify.yml @@ -0,0 +1,23 @@ +--- +- name: Read the firewall + vyos.vyos.vyos_command: + commands: + - show firewall + register: _firewall_v + +- name: Every configured filter is active with its rules + ansible.builtin.assert: + that: >- + _firewall_v.stdout[0] is search((item.afi | upper | replace('V', 'v')) ~ ' Firewall "' ~ item.chain ~ ' filter"') + fail_msg: "{{ item.afi }} {{ item.chain }} filter is not active" + quiet: true + loop: >- + {%- set out = [] -%} + {%- for afi, filters in [('ipv4', firewall_ipv4), ('ipv6', firewall_ipv6)] -%} + {%- for chain in ['input', 'forward', 'output'] if filters[chain] is defined and filters[chain] -%} + {%- set _ = out.append({'afi': afi, 'chain': chain}) -%} + {%- endfor -%} + {%- endfor -%} + {{ out }} + loop_control: + label: "{{ item.afi }} {{ item.chain }}" |
