Add initial router role
authorKristof Provost <kp@FreeBSD.org>
Sun, 28 Apr 2024 09:47:59 +0000 (11:47 +0200)
committerKristof Provost <kp@FreeBSD.org>
Sun, 28 Apr 2024 09:48:58 +0000 (11:48 +0200)
Beginnings of ansible foo for iapetus and phobos, although just the qemu one for now.

ansible/inventory-routers.yaml [new file with mode: 0644]
ansible/playbook-push.yaml
ansible/roles/router/tasks/main.yaml [new file with mode: 0644]
ansible/roles/router/templates/pf.conf [new file with mode: 0644]

diff --git a/ansible/inventory-routers.yaml b/ansible/inventory-routers.yaml
new file mode 100644 (file)
index 0000000..c94adcb
--- /dev/null
@@ -0,0 +1,12 @@
+routers:
+  hosts:
+    qemu:
+      control_port: 2400
+      ansible_port: 2400
+      ansible_host: kosmos.sigsegv.be
+      lan_ip: "10.0.1.1/24"
+initial:
+  hosts:
+    poudriere-image:
+      control_port: 0
+
index 49ff304..c863b9c 100644 (file)
@@ -2,3 +2,7 @@
   import_playbook: homeassistant.yaml
 - name: libs7comm
   import_playbook: libs7comm.yaml
+- name: routers
+  hosts: routers
+  roles:
+    - router
diff --git a/ansible/roles/router/tasks/main.yaml b/ansible/roles/router/tasks/main.yaml
new file mode 100644 (file)
index 0000000..7f00809
--- /dev/null
@@ -0,0 +1,37 @@
+- name: set subnet
+  community.general.sysrc:
+    name: ifconfig_vr0
+    value: "{{ lan_ip }} up"
+  become: true
+- name: gateway enable
+  community.general.sysrc:
+    name: gateway_enable
+    value: "YES"
+  become: true
+- name: pf enable
+  community.general.sysrc:
+    name: pf_enable
+    value: "YES"
+  become: true
+- name: install pf.conf
+  template:
+    src: pf.conf
+    dest: "/etc/pf.conf"
+    owner: root
+    group: wheel
+    mode: 0644
+  become: true
+- name: unbound enable
+  community.general.sysrc:
+    name: local_unbound_enable
+    value: "YES"
+  become: true
+- name: ntp enable
+  community.general.sysrc:
+    name: ntpd_enable
+    value: "YES"
+  become: true
+- name: ntpdate enable
+  community.general.sysrc:
+    name: ntpdate_enable
+    value: "YES"
diff --git a/ansible/roles/router/templates/pf.conf b/ansible/roles/router/templates/pf.conf
new file mode 100644 (file)
index 0000000..14101c0
--- /dev/null
@@ -0,0 +1,15 @@
+#!/sbin/pfctl -f
+
+#set timeout tcp.established 86400
+#set block-policy return
+
+set skip on lo0
+
+ext_if = "vr0"
+int_if = "vr1"
+
+scrub on $ext_if all fragment reassemble reassemble tcp
+
+nat on $ext_if inet from ! ($ext_if) to any -> ($ext_if)
+
+pass