Initial role
This commit is contained in:
11
nftables/tasks/deploy-rules/main.yml
Normal file
11
nftables/tasks/deploy-rules/main.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
- name: Deploying group files
|
||||
include_tasks: ./per-group-template-file.yml
|
||||
with_items:
|
||||
- "{{ nftables.rules.files | list }}"
|
||||
|
||||
- name: Deploying group raw-files
|
||||
include_tasks: ./per-group-template.yml
|
||||
with_items:
|
||||
- "{{ nftables.rules.raw | list }}"
|
||||
|
||||
- include_tasks: ./remove-files.yml
|
||||
51
nftables/tasks/deploy-rules/per-group-template-file.yml
Normal file
51
nftables/tasks/deploy-rules/per-group-template-file.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
- set_fact:
|
||||
group_identifier: "{{ item }}"
|
||||
value: "{{ nftables.rules.files[item] }}"
|
||||
when: "item is defined"
|
||||
|
||||
#'<group_identifier>': '<relative-location>'
|
||||
- block:
|
||||
- name: Create main rule file
|
||||
template:
|
||||
src: "{{ value }}"
|
||||
dest: "/etc/nftables/ansible-managed/{{ group_identifier }}.nft"
|
||||
when: value is string
|
||||
|
||||
#'<group_identifier>':
|
||||
# main: <relative-location>
|
||||
# '<identifier>': '<relative-location>'
|
||||
- block:
|
||||
- set_fact:
|
||||
items: "{{ nftables.rules.files[item] }}"
|
||||
|
||||
- block:
|
||||
- name: Create main rule file
|
||||
template:
|
||||
src: "{{ items['main'] }}"
|
||||
dest: "/etc/nftables/ansible-managed/{{ group_identifier }}.nft"
|
||||
|
||||
- name: Include rule files
|
||||
lineinfile:
|
||||
path: "/etc/nftables/ansible-managed/{{ group_identifier }}.nft"
|
||||
regexp: "include\\s+(\"|')\\/etc\\/nftables\\/ansible-managed\\/{{ group_identifier }}\\/.*$"
|
||||
line: 'include "/etc/nftables/ansible-managed/{{ group_identifier }}/*.nft"'
|
||||
when: items['main'] is defined
|
||||
|
||||
- name: Create group folder
|
||||
file:
|
||||
path: "/etc/nftables/ansible-managed/{{ group_identifier }}/"
|
||||
state: directory
|
||||
when: items|length > 0
|
||||
|
||||
- set_fact:
|
||||
test: "{{ items | dict2items | selectattr('key', 'ne', 'main') }}"
|
||||
|
||||
- name: Create included rule files
|
||||
template:
|
||||
src: "{{ fileItem.value }}"
|
||||
dest: "/etc/nftables/ansible-managed/{{ group_identifier }}/{{ fileItem.key }}.nft"
|
||||
loop: "{{ items | dict2items | selectattr('key', 'ne', 'main') }}"
|
||||
loop_control:
|
||||
loop_var: fileItem
|
||||
|
||||
when: value is mapping
|
||||
48
nftables/tasks/deploy-rules/per-group-template.yml
Normal file
48
nftables/tasks/deploy-rules/per-group-template.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
- set_fact:
|
||||
group_identifier: "{{ item }}"
|
||||
value: "{{ nftables.rules.raw[item] }}"
|
||||
when: "item is defined"
|
||||
|
||||
#'<group_identifier>': '<content>'
|
||||
- block:
|
||||
- name: Create main rule file
|
||||
copy:
|
||||
content: "{{ value }}"
|
||||
dest: "/etc/nftables/ansible-managed/{{ group_identifier }}.nft"
|
||||
when: value is string
|
||||
|
||||
#'<group_identifier>':
|
||||
# main: <content>
|
||||
# '<identifier>': '<content>'
|
||||
- block:
|
||||
- set_fact:
|
||||
items: "{{ nftables.rules.raw[item] }}"
|
||||
|
||||
- block:
|
||||
- name: Create main rule file
|
||||
copy:
|
||||
content: "{{ items['main'] }}"
|
||||
dest: "/etc/nftables/ansible-managed/{{ group_identifier }}.nft"
|
||||
|
||||
- name: Include rule files
|
||||
lineinfile:
|
||||
path: "/etc/nftables/ansible-managed/{{ group_identifier }}.nft"
|
||||
regexp: "include\\s+(\"|')\\/etc\\/nftables\\/ansible-managed\\/{{ group_identifier }}\\/.*$"
|
||||
line: 'include "/etc/nftables/ansible-managed/{{ group_identifier }}/*.nft"'
|
||||
when: items['main'] is defined
|
||||
|
||||
- name: Create group folder
|
||||
file:
|
||||
path: "/etc/nftables/ansible-managed/{{ group_identifier }}/"
|
||||
state: directory
|
||||
when: items|length > 0
|
||||
|
||||
- name: Create included rule files
|
||||
copy:
|
||||
content: "{{ included_item.value }}"
|
||||
dest: "/etc/nftables/ansible-managed/{{ group_identifier }}/{{ included_item.key }}.nft"
|
||||
loop: "{{ items | dict2items | selectattr('key', 'ne', 'main') }}"
|
||||
loop_control:
|
||||
loop_var: included_item
|
||||
|
||||
when: value is mapping
|
||||
Reference in New Issue
Block a user