Files
2024-10-30 01:50:38 +01:00

51 lines
1.8 KiB
YAML

---
# Set state status for firewall rule
- name: Set state status for firewall rule {{ item.id | default('@rule[-1]') }}
ansible.builtin.set_fact:
firewall_rule_state: "{{ item.state | default('present') }}"
# Delete firewall rule
- name: Delete firewall rule {{ item.id }}
when: "'absent' in firewall_rule_state"
uci:
command: "absent"
config: "firewall"
section: "{{ item.id }}"
type: "rule"
# Create and configure firewall rule
- name: Create and configure firewall rule
when: "'present' in firewall_rule_state"
block:
# Create firewall rule
- name: Create firewall rule {{ item.id | default('@rule[-1]') }}
uci:
command: "add"
config: "firewall"
section: "{{ item.id | default('@rule[-1]') }}"
type: "rule"
# Configure firewall rule
- name: Configure firewall rule {{ item.id | default('@rule[-1]') }}
uci:
command: "set"
config: "firewall"
section: "{{ item.id | default('@rule[-1]') }}"
type: "rule"
value:
name: "{{ item.name | default(omit) }}"
src: "{{ item.src | default(omit) }}"
src_ip: "{{ item.src_ip | default(omit) }}"
src_port: "{{ item.src_port | default([]) | join(' ') }}"
src_mac: "{{ item.src_mac | default(omit) }}"
dest: "{{ item.dest | default(omit) }}"
dest_ip: "{{ item.dest_ip | default(omit) }}"
dest_port: "{{ item.dest_port | default([]) | join(' ') }}"
target: "{{ item.target | default(omit) }}"
proto: "{{ item.proto | default([]) | join(' ') }}"
family: "{{ item.family | default(omit) }}"
ipset: "{{ item.ipset | default(omit) }}"
mark: "{{ item.mark | default(omit) }}"
set_mark: "{{ item.set_mark | default(omit) }}"
enabled: "{{ item.enabled | default(omit) }}"