Add desktop network setup
This commit is contained in:
parent
75594b5e43
commit
0e78c4a642
9 changed files with 123 additions and 6 deletions
|
|
@ -6,10 +6,10 @@ packages:
|
||||||
- gimp
|
- gimp
|
||||||
- nftables
|
- nftables
|
||||||
- mpd
|
- mpd
|
||||||
- nfs
|
- nfs-utils
|
||||||
- openvpn
|
- openvpn
|
||||||
- okular
|
- okular
|
||||||
- postgres
|
- postgresql
|
||||||
- plasma-meta
|
- plasma-meta
|
||||||
- syncthing
|
- syncthing
|
||||||
- tmux
|
- tmux
|
||||||
|
|
@ -22,3 +22,7 @@ packages:
|
||||||
- curl
|
- curl
|
||||||
- cantata
|
- cantata
|
||||||
- reflector
|
- reflector
|
||||||
|
|
||||||
|
platform: "desktop"
|
||||||
|
platform_packages: []
|
||||||
|
skip_common_setup: true
|
||||||
13
roles/arch/meta/main.yml
Normal file
13
roles/arch/meta/main.yml
Normal 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
|
||||||
|
|
@ -1,26 +1,39 @@
|
||||||
- name: load desktop specific vars
|
- name: load desktop specific vars
|
||||||
include_vars: desktop.yml
|
include_vars: desktop.yml
|
||||||
when: not platform or platform == "desktop"
|
when: platform == "desktop"
|
||||||
|
|
||||||
- name: load laptop specific vars
|
- name: load laptop specific vars
|
||||||
include_vars: laptop.yml
|
include_vars: laptop.yml
|
||||||
when: platform and platform == "laptop"
|
when: platform == "laptop"
|
||||||
|
|
||||||
- name: install shared packages
|
- name: install shared packages
|
||||||
|
become: yes
|
||||||
pacman:
|
pacman:
|
||||||
name: "{{ packages }}"
|
name: "{{ packages }}"
|
||||||
|
|
||||||
- name: install platform specific packages
|
- name: install platform specific packages
|
||||||
|
become: yes
|
||||||
pacman:
|
pacman:
|
||||||
name: "{{ platform_packages }}"
|
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
|
# TODO
|
||||||
# - (systemd networkd/iwl) network setup
|
# - network setup (laptop)
|
||||||
# - nftables setup depending on platform
|
|
||||||
# - daily systemd-timer
|
# - daily systemd-timer
|
||||||
# - weekly systemd-timer
|
# - weekly systemd-timer
|
||||||
# - reflector setup
|
# - reflector setup
|
||||||
|
# - pacman setup depending on platform (see include section for common options)
|
||||||
|
|
||||||
|
- include_tasks: network.yml
|
||||||
- include_tasks: mpv.yml # TODO
|
- include_tasks: mpv.yml # TODO
|
||||||
- include_tasks: mpd.yml # TODO
|
- include_tasks: mpd.yml # TODO
|
||||||
- include_tasks: nfs.yml # TODO
|
- include_tasks: nfs.yml # TODO
|
||||||
|
|
|
||||||
12
roles/arch/tasks/network.yml
Normal file
12
roles/arch/tasks/network.yml
Normal 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
|
||||||
7
roles/arch/templates/desktop/network.j2
Normal file
7
roles/arch/templates/desktop/network.j2
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
|
||||||
|
|
||||||
|
[Match]
|
||||||
|
Name=enp*
|
||||||
|
|
||||||
|
[Network]
|
||||||
|
DHCP=yes
|
||||||
65
roles/arch/templates/desktop/nftables.j2
Normal file
65
roles/arch/templates/desktop/nftables.j2
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
|
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
|
||||||
|
#
|
||||||
## Seek units are in seconds, but note that these are limited by keyframes
|
## Seek units are in seconds, but note that these are limited by keyframes
|
||||||
RIGHT seek 5
|
RIGHT seek 5
|
||||||
LEFT seek -5
|
LEFT seek -5
|
||||||
|
|
|
||||||
1
roles/arch/vars/desktop.yml
Normal file
1
roles/arch/vars/desktop.yml
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
platform_packages: []
|
||||||
1
roles/arch/vars/laptop.yml
Normal file
1
roles/arch/vars/laptop.yml
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
platform_packages: []
|
||||||
Loading…
Add table
Add a link
Reference in a new issue