Add desktop network setup

This commit is contained in:
Sonny Bakker 2020-11-25 15:47:09 +01:00
parent 75594b5e43
commit 0e78c4a642
9 changed files with 123 additions and 6 deletions

View file

@ -6,10 +6,10 @@ packages:
- gimp
- nftables
- mpd
- nfs
- nfs-utils
- openvpn
- okular
- postgres
- postgresql
- plasma-meta
- syncthing
- tmux
@ -22,3 +22,7 @@ packages:
- curl
- cantata
- reflector
platform: "desktop"
platform_packages: []
skip_common_setup: true

13
roles/arch/meta/main.yml Normal file
View file

@ -0,0 +1,13 @@
dependencies:
- common
galaxy_info:
author: sonny
description: "Sets up an arch environment"
license: "license GPLv3"
min_ansible_version: 2.7
issue_tracker_url: "https://git.fudiggity.nl/ansible/arch-setup/issues"
platforms:
- name: Archlinux
galaxy_tags:
- system

View file

@ -1,26 +1,39 @@
- name: load desktop specific vars
include_vars: desktop.yml
when: not platform or platform == "desktop"
when: platform == "desktop"
- name: load laptop specific vars
include_vars: laptop.yml
when: platform and platform == "laptop"
when: platform == "laptop"
- name: install shared packages
become: yes
pacman:
name: "{{ packages }}"
- name: install platform specific packages
become: yes
pacman:
name: "{{ platform_packages }}"
- name: copy firewall template
become: yes
template:
src: "{{ platform }}/nftables.j2"
dest: "/etc/nftables.conf"
owner: root
group: root
mode: "0600"
notify: restart nftables
# TODO
# - (systemd networkd/iwl) network setup
# - nftables setup depending on platform
# - network setup (laptop)
# - daily systemd-timer
# - weekly systemd-timer
# - reflector setup
# - pacman setup depending on platform (see include section for common options)
- include_tasks: network.yml
- include_tasks: mpv.yml # TODO
- include_tasks: mpd.yml # TODO
- include_tasks: nfs.yml # TODO

View file

@ -0,0 +1,12 @@
- name: setup desktop systemd networkd
become: yes
template:
src: "desktop/network.j2"
dest: "/etc/systemd/network/20-wired.network"
owner: root
group: root
mode: "0644"
notify: restart systemd-networkd
when: platform == "desktop"
# TODO add laptop setup

View file

@ -0,0 +1,7 @@
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
[Match]
Name=enp*
[Network]
DHCP=yes

View file

@ -0,0 +1,65 @@
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
#
#!/usr/bin/nft -f
# vim:set ts=2 sw=2 et:
table inet filter {
chain input {
type filter hook input priority 0;
# allow established/related connections
ct state { established, related } accept
# early drop of invalid connections
ct state invalid drop
# allow from loopback
iifname lo accept
# allow icmp
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
# allow ssh
tcp dport ssh accept
# syncthing
ip saddr 10.8.1.1 tcp dport 22000 accept
# allow dhcp requests for bridget connections
iifname "vmbr0" udp dport { 53, 67 } accept
# everything else
reject with icmpx type port-unreachable
}
chain forward {
type filter hook forward priority security; policy drop;
ct state { established, related } accept;
mark 1 accept
iifname "vmbr0" oifname "enp34s0" accept
iifname "enp34s0" oifname "vmbr0" accept
}
}
table ip filter {
chain DOCKER-USER {
mark set 1
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority 0; policy accept;
# iifname "enp34s0" tcp dport { http } dnat to 10.4.0.243
}
chain postrouting {
type nat hook postrouting priority 0; policy accept;
oifname "enp34s0" masquerade
}
}

View file

@ -1,4 +1,5 @@
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
#
## Seek units are in seconds, but note that these are limited by keyframes
RIGHT seek 5
LEFT seek -5

View file

@ -0,0 +1 @@
platform_packages: []

View file

@ -0,0 +1 @@
platform_packages: []