feat/ufw_implementation #2
10
homelab.yml
10
homelab.yml
@@ -1,11 +1,15 @@
|
|||||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/playbook.json
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/playbook.json
|
||||||
---
|
---
|
||||||
- name: Homelab alignment
|
- name: Homelab alignment
|
||||||
hosts: online
|
hosts: managed
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- role: repos
|
|
||||||
- role: common
|
|
||||||
- role: ufw
|
- role: ufw
|
||||||
|
tags: ufw
|
||||||
|
|
||||||
|
- role: repos
|
||||||
|
tags: repos
|
||||||
|
|
||||||
- role: upgrade
|
- role: upgrade
|
||||||
|
tags: upgrade
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# roles/ufw/defaults/main.yml
|
# roles/ufw/defaults/main.yml
|
||||||
---
|
---
|
||||||
|
ufw_default_incoming_policy: deny
|
||||||
|
ufw_default_outgoing_policy: allow
|
||||||
ufw_tailscale_interface: tailscale0
|
ufw_tailscale_interface: tailscale0
|
||||||
ufw_extra_rules: []
|
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
# roles/ufw/tasks/main.yml
|
||||||
|
|
||||||
|
- name: Install UFW (Alpine)
|
||||||
|
community.general.apk:
|
||||||
|
name: ufw
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts['os_family'] == "Alpine"
|
||||||
|
|
||||||
|
- name: Install UFW (Debian)
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name: ufw
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts['os_family'] == "Debian"
|
||||||
|
|
||||||
|
- name: Add UFW to default runlevel (Alpine)
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: rc-update add ufw default
|
||||||
|
register: rc_update_result
|
||||||
|
changed_when: >- # ">- : transform multiple lines into one line"
|
||||||
|
'already' not in rc_update_result.stdout
|
||||||
|
and 'already' not in rc_update_result.stderr
|
||||||
|
failed_when: rc_update_result.rc != 0
|
||||||
|
when: ansible_facts['os_family'] == "Alpine"
|
||||||
|
|
||||||
|
- name: Set default incoming policy
|
||||||
|
community.general.ufw:
|
||||||
|
default: "{{ ufw_default_incoming_policy }}"
|
||||||
|
direction: incoming
|
||||||
|
|
||||||
|
- name: Set default outgoing policy
|
||||||
|
community.general.ufw:
|
||||||
|
default: "{{ ufw_default_outgoing_policy }}"
|
||||||
|
direction: outgoing
|
||||||
|
|
||||||
|
- name: Enable UFW
|
||||||
|
community.general.ufw:
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- name: Allow all traffic on Tailscale interface
|
||||||
|
community.general.ufw:
|
||||||
|
rule: allow
|
||||||
|
interface: "{{ ufw_tailscale_interface }}"
|
||||||
|
direction: in
|
||||||
|
|||||||
Reference in New Issue
Block a user