Compare commits

...

5 commits

36 changed files with 400 additions and 402 deletions

View file

@ -1,3 +1,4 @@
---
- name: Arch Linux provisioning - name: Arch Linux provisioning
gather_facts: true gather_facts: true
hosts: all hosts: all
@ -5,12 +6,12 @@
- common - common
tasks: tasks:
- name: Generic provisioning - name: Generic provisioning
ansible.builtin.import_tasks: 'tasks/setup.yml' ansible.builtin.import_tasks: "tasks/setup.yml"
tags: setup tags: setup
# TODO: provision ssh client config with modern cyphers # TODO: provision ssh client config with modern cyphers
- name: Network provisioning - name: Network provisioning
ansible.builtin.import_tasks: 'tasks/network/main.yml' ansible.builtin.import_tasks: "tasks/network/main.yml"
tags: network tags: network
# - name: Network host specific provisioning # - name: Network host specific provisioning
@ -18,23 +19,23 @@
# tags: network-specific # tags: network-specific
- name: Systemd provisioning - name: Systemd provisioning
ansible.builtin.import_tasks: 'tasks/systemd.yml' ansible.builtin.import_tasks: "tasks/systemd.yml"
tags: systemd tags: systemd
- name: Systemd timer provisioning - name: Systemd timer provisioning
ansible.builtin.import_tasks: 'tasks/timer.yml' ansible.builtin.import_tasks: "tasks/timer.yml"
tags: timers tags: timers
# Note: Disable DoH in Firefox to fallback to system's default DNS # Note: Disable DoH in Firefox to fallback to system's default DNS
# resolver, see # resolver, see
# https://support.mozilla.org/en-US/kb/dns-over-https#w_configure-doh-protection-settings # https://support.mozilla.org/en-US/kb/dns-over-https#w_configure-doh-protection-settings
- name: MPV provisioning - name: MPV provisioning
ansible.builtin.import_tasks: 'tasks/mpv.yml' ansible.builtin.import_tasks: "tasks/mpv.yml"
tags: mpv tags: mpv
handlers: handlers:
- name: Import default handlers - name: Import default handlers
ansible.builtin.import_tasks: 'handlers.yml' ansible.builtin.import_tasks: "handlers.yml"
- name: Import common role handlers - name: Import common role handlers
ansible.builtin.import_tasks: 'roles/common/handlers/user.yml' ansible.builtin.import_tasks: "roles/common/handlers/user.yml"

View file

@ -1,3 +1,4 @@
---
- name: Include default playbook - name: Include default playbook
ansible.builtin.import_playbook: default.yml ansible.builtin.import_playbook: default.yml
@ -6,24 +7,24 @@
gather_facts: true gather_facts: true
tasks: tasks:
- name: Wireguard provisioning - name: Wireguard provisioning
ansible.builtin.import_tasks: 'tasks/wireguard.yml' ansible.builtin.import_tasks: "tasks/wireguard.yml"
tags: wireguard tags: wireguard
- name: Wireguard media provisioning - name: Wireguard media provisioning
ansible.builtin.import_tasks: 'tasks/wireguard-media.yml' ansible.builtin.import_tasks: "tasks/wireguard-media.yml"
tags: wireguard-media tags: wireguard-media
- name: MPD provisioning - name: MPD provisioning
ansible.builtin.import_tasks: 'tasks/mpd.yml' ansible.builtin.import_tasks: "tasks/mpd.yml"
tags: mpd tags: mpd
- name: Syncthing provisioning - name: Syncthing provisioning
ansible.builtin.import_tasks: 'tasks/syncthing.yml' ansible.builtin.import_tasks: "tasks/syncthing.yml"
tags: syncthing tags: syncthing
# TODO: provision current macvlan setup # TODO: provision current macvlan setup
- name: Desktop provisioning - name: Desktop provisioning
ansible.builtin.import_tasks: 'tasks/desktop.yml' ansible.builtin.import_tasks: "tasks/desktop.yml"
tags: desktop tags: desktop
handlers: handlers:
@ -31,4 +32,4 @@
ansible.builtin.import_tasks: handlers.yml ansible.builtin.import_tasks: handlers.yml
- name: Import common role handlers - name: Import common role handlers
ansible.builtin.import_tasks: 'roles/common/handlers/user.yml' ansible.builtin.import_tasks: "roles/common/handlers/user.yml"

View file

@ -1,3 +1,4 @@
---
packages: packages:
- nftables - nftables
- tmux - tmux
@ -8,21 +9,17 @@ packages:
- iproute2 - iproute2
- curl - curl
- reflector - reflector
- otf-monaspace-nerd - ttf-ibm-plex
- systemd-ukify - systemd-ukify
- efibootmgr - efibootmgr
- git-delta - git-delta
xdg_config_dir: '{{ ansible_env.HOME }}/.config' xdg_config_dir: "{{ ansible_env.HOME }}/.config"
xdg_script_dir: '{{ ansible_env.HOME }}/.local/bin' xdg_script_dir: "{{ ansible_env.HOME }}/.local/bin"
modprobe_templates: [] modprobe_templates: []
mkinitcpio_templates: [] mkinitcpio_templates: []
boot_configuration:
server_domain: fudiggity.nl server_domain: fudiggity.nl
register_uefi_entries: false wezterm_font: IBM Plex Mono Medm
wezterm_font_size: 12
wezterm_font_size: 11

View file

@ -1,91 +1,91 @@
- name: enable daily timer ---
- name: Enable daily timer
become: true become: true
systemd: ansible.builtin.systemd:
name: daily.timer name: daily.timer
state: restarted state: restarted
enabled: true enabled: true
daemon-reload: true daemon-reload: true
- name: enable weekly timer - name: Enable weekly timer
become: true become: true
systemd: ansible.builtin.systemd:
name: weekly.timer name: weekly.timer
state: restarted state: restarted
enabled: true enabled: true
daemon-reload: true daemon-reload: true
- name: restart user ssh-agent - name: Restart user ssh-agent
systemd: ansible.builtin.systemd:
name: ssh-agent name: ssh-agent
state: restarted state: restarted
enabled: true enabled: true
daemon-reload: true daemon-reload: true
scope: user scope: user
- name: start syncthing - name: Start syncthing
systemd: ansible.builtin.systemd:
name: syncthing name: syncthing
state: started state: started
enabled: true enabled: true
scope: user scope: user
- name: restart powertop - name: Restart powertop
become: true become: true
systemd: ansible.builtin.systemd:
name: powertop name: powertop
state: restarted state: restarted
enabled: true enabled: true
daemon-reload: true daemon-reload: true
- name: restart systemd-networkd - name: Restart systemd-networkd
become: true become: true
systemd: ansible.builtin.systemd:
name: systemd-networkd name: systemd-networkd
state: restarted state: restarted
enabled: true enabled: true
- name: restart systemd-resolved - name: Restart systemd-resolved
become: true become: true
systemd: ansible.builtin.systemd:
name: systemd-resolved name: systemd-resolved
state: started state: started
enabled: true enabled: true
- name: restart iwd - name: Restart iwd
become: true become: true
systemd: ansible.builtin.systemd:
name: iwd name: iwd
state: restarted state: restarted
enabled: true enabled: true
- name: stop mpd service - name: Stop mpd service
systemd: ansible.builtin.systemd:
name: mpd.service name: mpd.service
state: stopped state: stopped
enabled: false enabled: false
scope: user scope: user
daemon-reload: true daemon-reload: true
- name: restart mpd socket - name: Restart mpd socket
systemd: ansible.builtin.systemd:
name: mpd name: mpd
state: restarted state: restarted
enabled: true enabled: true
scope: user scope: user
daemon-reload: true daemon-reload: true
- name: reload sysctl configuration - name: Reload sysctl configuration
become: true become: true
command: 'sysctl --system' ansible.builtin.command: "sysctl --system"
- name: Restart tmux service
- name: restart tmux service ansible.builtin.systemd:
systemd:
name: tmux name: tmux
state: restarted state: restarted
enabled: true enabled: true
scope: user scope: user
- name: user daemon-reload - name: User daemon-reload
ansible.builtin.systemd: ansible.builtin.systemd:
daemon-reload: true daemon-reload: true
scope: user scope: user

View file

@ -1,3 +1,4 @@
---
lan_interface: enp1s0 lan_interface: enp1s0
lan_interface_mac: 00:d8:61:9f:52:65 lan_interface_mac: 00:d8:61:9f:52:65

View file

@ -1,16 +1,17 @@
syncthing_listen_address: '0.0.0.0' ---
syncthing_listen_address: "0.0.0.0"
syncthing_protocol_port: 22000 syncthing_protocol_port: 22000
syncthing_gui_port: 8384 syncthing_gui_port: 8384
syncthing_config_version: 37 syncthing_config_version: 37
syncthing_api_key: !vault | syncthing_api_key: !vault |
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
39643534383666343331666336356662333165633032356532323730316535616363393330376263 39643534383666343331666336356662333165633032356532323730316535616363393330376263
6164323430343961646635323739373363623764646361360a666566363736323739313533323562 6164323430343961646635323739373363623764646361360a666566363736323739313533323562
34653032646230313063613265313836383033353336333461376432363530633632313234323733 34653032646230313063613265313836383033353336333461376432363530633632313234323733
6162646332623837370a646537336139336361666336363861353030633136373063333433643435 6162646332623837370a646537336139336361666336363861353030633136373063333433643435
64666465356566313263376330643664313266646139663433663366316232613562663863366334 64666465356566313263376330643664313266646139663433663366316232613562663863366334
3061663839656563353663373135393233653130383735366538 3061663839656563353663373135393233653130383735366538
syncthing_devices: syncthing_devices:
- name: Desktop - name: Desktop
@ -28,7 +29,7 @@ syncthing_devices:
syncthing_folders: syncthing_folders:
- id: default - id: default
label: Default label: Default
path: '{{ ansible_env.HOME }}/syncthing/default' path: "{{ ansible_env.HOME }}/syncthing/default"
type: sendreceive type: sendreceive
devices: devices:
- *syncthing_desktop_id - *syncthing_desktop_id
@ -37,7 +38,7 @@ syncthing_folders:
- id: pictures - id: pictures
label: Pictures label: Pictures
path: '{{ ansible_env.HOME }}/syncthing/pictures' path: "{{ ansible_env.HOME }}/syncthing/pictures"
type: sendreceive type: sendreceive
devices: devices:
- *syncthing_desktop_id - *syncthing_desktop_id

View file

@ -1,3 +1,4 @@
---
packages: packages:
- nftables - nftables
- tmux - tmux
@ -8,7 +9,7 @@ packages:
- iproute2 - iproute2
- curl - curl
- reflector - reflector
- otf-monaspace-nerd - ttf-ibm-plex
- systemd-ukify - systemd-ukify
- efibootmgr - efibootmgr
- git-delta - git-delta
@ -37,19 +38,17 @@ packages:
- aspell-en - aspell-en
modprobe_templates: modprobe_templates:
- src: 'templates/desktop/modprobe/99-amdgpu.conf.j2' - src: "templates/desktop/modprobe/99-amdgpu.conf.j2"
dest: '/etc/modprobe.d/99-amdgpu.conf' dest: "/etc/modprobe.d/99-amdgpu.conf"
mkinitcpio_templates: mkinitcpio_templates:
- src: 'templates/desktop/mkinitcpio/1-modules.conf.j2' - src: "templates/desktop/mkinitcpio/1-modules.conf.j2"
dest: '/etc/mkinitcpio.conf.d/1-amdgpu.conf' dest: "/etc/mkinitcpio.conf.d/1-amdgpu.conf"
- src: 'templates/desktop/mkinitcpio/linux.preset.j2' - src: "templates/desktop/mkinitcpio/linux.preset.j2"
dest: '/etc/mkinitcpio.d/linux.preset' dest: "/etc/mkinitcpio.d/linux.preset"
- src: 'templates/desktop/mkinitcpio/linux-lts.preset.j2' - src: "templates/desktop/mkinitcpio/linux-lts.preset.j2"
dest: '/etc/mkinitcpio.d/linux-lts.preset' dest: "/etc/mkinitcpio.d/linux-lts.preset"
boot_configuration: wezterm_font_size: 12
disk: /dev/sdc
partition: 1

View file

@ -1,3 +1,4 @@
---
lan_interface: enp1s0 lan_interface: enp1s0
lan_interface_mac: bc:fc:e7:6e:73:53 lan_interface_mac: bc:fc:e7:6e:73:53

View file

@ -1,3 +1,4 @@
---
packages: packages:
- nftables - nftables
- tmux - tmux
@ -8,7 +9,7 @@ packages:
- iproute2 - iproute2
- curl - curl
- reflector - reflector
- otf-monaspace-nerd - ttf-ibm-plex
- systemd-ukify - systemd-ukify
- efibootmgr - efibootmgr
- git-delta - git-delta
@ -31,17 +32,12 @@ wezterm_columns: 90
wezterm_rows: 18 wezterm_rows: 18
modprobe_templates: [] modprobe_templates: []
mkinitcpio_templates: mkinitcpio_templates:
- src: 'templates/htpc/mkinitcpio/1-modules.conf.j2' - src: "templates/htpc/mkinitcpio/1-modules.conf.j2"
dest: '/etc/mkinitcpio.conf.d/1-amdgpu.conf' dest: "/etc/mkinitcpio.conf.d/1-amdgpu.conf"
- src: 'templates/htpc/mkinitcpio/linux.preset.j2' - src: "templates/htpc/mkinitcpio/linux.preset.j2"
dest: '/etc/mkinitcpio.d/linux.preset' dest: "/etc/mkinitcpio.d/linux.preset"
- src: 'templates/htpc/mkinitcpio/linux-lts.preset.j2' - src: "templates/htpc/mkinitcpio/linux-lts.preset.j2"
dest: '/etc/mkinitcpio.d/linux-lts.preset' dest: "/etc/mkinitcpio.d/linux-lts.preset"
boot_configuration:
disk: /dev/sda
partition: 1

View file

@ -1,3 +1,4 @@
---
wireless_interface: wlan0 wireless_interface: wlan0
local_network_ssid: KPNAE51C6 local_network_ssid: KPNAE51C6

View file

@ -1,2 +1,3 @@
---
pa_dlna_version: 0.16 pa_dlna_version: 0.16
pa_dlna_systemd_version: 0.0.9 pa_dlna_systemd_version: 0.0.9

View file

@ -1,16 +1,17 @@
syncthing_listen_address: '0.0.0.0' ---
syncthing_listen_address: "0.0.0.0"
syncthing_protocol_port: 22000 syncthing_protocol_port: 22000
syncthing_gui_port: 8384 syncthing_gui_port: 8384
syncthing_config_version: 37 syncthing_config_version: 37
syncthing_api_key: !vault | syncthing_api_key: !vault |
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
35346637623066636261633331343438313736356137633466306633613563343630363565643763 35346637623066636261633331343438313736356137633466306633613563343630363565643763
6631623461663330633537386539376435356338393537620a666234373932636162653830316339 6631623461663330633537386539376435356338393537620a666234373932636162653830316339
65336339383630313837323137613137303862613061326131313437316637383637666638313235 65336339383630313837323137613137303862613061326131313437316637383637666638313235
6463333235646536620a316163666431323530353330356633393035663933613761313031656561 6463333235646536620a316163666431323530353330356633393035663933613761313031656561
66333431636134366466373533616438326230323965333763316336393764303737663461363636 66333431636134366466373533616438326230323965333763316336393764303737663461363636
3061373832313462623765353130616237343966333332623262 3061373832313462623765353130616237343966333332623262
syncthing_devices: syncthing_devices:
- name: Desktop - name: Desktop
@ -28,7 +29,7 @@ syncthing_devices:
syncthing_folders: syncthing_folders:
- id: default - id: default
label: Default label: Default
path: '{{ ansible_env.HOME }}/syncthing/default' path: "{{ ansible_env.HOME }}/syncthing/default"
type: sendreceive type: sendreceive
devices: devices:
- *syncthing_desktop_id - *syncthing_desktop_id
@ -37,7 +38,7 @@ syncthing_folders:
- id: pictures - id: pictures
label: Pictures label: Pictures
path: '{{ ansible_env.HOME }}/syncthing/pictures' path: "{{ ansible_env.HOME }}/syncthing/pictures"
type: sendreceive type: sendreceive
devices: devices:
- *syncthing_desktop_id - *syncthing_desktop_id

View file

@ -1,3 +1,4 @@
---
packages: packages:
- nftables - nftables
- tmux - tmux
@ -8,7 +9,7 @@ packages:
- iproute2 - iproute2
- curl - curl
- reflector - reflector
- otf-monaspace-nerd - ttf-ibm-plex
- systemd-ukify - systemd-ukify
- efibootmgr - efibootmgr
- git-delta - git-delta
@ -42,21 +43,17 @@ packages:
- nvidia-utils - nvidia-utils
- lib32-nvidia-utils - lib32-nvidia-utils
boot_configuration:
disk: /dev/nvme0n1
partition: 1
mkinitcpio_templates: mkinitcpio_templates:
- src: 'templates/xps/mkinitcpio/1-modules.conf.j2' - src: "templates/xps/mkinitcpio/1-modules.conf.j2"
dest: '/etc/mkinitcpio.conf.d/1-modules.conf' dest: "/etc/mkinitcpio.conf.d/1-modules.conf"
- src: 'templates/xps/mkinitcpio/2-hooks.conf.j2' - src: "templates/xps/mkinitcpio/2-hooks.conf.j2"
dest: '/etc/mkinitcpio.conf.d/2-hooks.conf' dest: "/etc/mkinitcpio.conf.d/2-hooks.conf"
- src: 'templates/xps/mkinitcpio/linux.preset.j2' - src: "templates/xps/mkinitcpio/linux.preset.j2"
dest: '/etc/mkinitcpio.d/linux.preset' dest: "/etc/mkinitcpio.d/linux.preset"
- src: 'templates/xps/mkinitcpio/linux-lts.preset.j2' - src: "templates/xps/mkinitcpio/linux-lts.preset.j2"
dest: '/etc/mkinitcpio.d/linux-lts.preset' dest: "/etc/mkinitcpio.d/linux-lts.preset"
wezterm_font_size: 10 wezterm_font_size: 11

View file

@ -1,3 +1,4 @@
---
- hosts: htpc - hosts: htpc
gather_facts: true gather_facts: true
@ -8,7 +9,7 @@
hosts: htpc hosts: htpc
tasks: tasks:
- name: Wireguard media provisioning - name: Wireguard media provisioning
ansible.builtin.import_tasks: 'tasks/wireguard-media.yml' ansible.builtin.import_tasks: "tasks/wireguard-media.yml"
tags: wireguard-media tags: wireguard-media
handlers: handlers:
@ -16,4 +17,4 @@
ansible.builtin.import_tasks: handlers.yml ansible.builtin.import_tasks: handlers.yml
- name: Import common role handlers - name: Import common role handlers
ansible.builtin.import_tasks: 'roles/common/handlers/user.yml' ansible.builtin.import_tasks: "roles/common/handlers/user.yml"

View file

@ -1,3 +1,4 @@
---
all: all:
hosts: hosts:
xps: xps:

View file

@ -1,3 +1,4 @@
---
- src: git+https://forgejo.fudiggity.nl/sonny/common-ansible.git - src: git+https://forgejo.fudiggity.nl/sonny/common-ansible.git
name: common name: common
version: master version: master

View file

@ -1,12 +1,13 @@
---
- name: Create xdg-desktop-portal.service.d directory - name: Create xdg-desktop-portal.service.d directory
ansible.builtin.file: ansible.builtin.file:
path: '{{ xdg_config_dir }}/systemd/user/xdg-desktop-portal.service.d' path: "{{ xdg_config_dir }}/systemd/user/xdg-desktop-portal.service.d"
state: directory state: directory
mode: '0755' mode: "0755"
- name: Copy xdg-desktop-portal.service drop-in - name: Copy xdg-desktop-portal.service drop-in
ansible.builtin.template: ansible.builtin.template:
src: templates/desktop/xdg-desktop-portal.service.j2 src: templates/desktop/xdg-desktop-portal.service.j2
dest: '{{ xdg_config_dir }}/systemd/user/xdg-desktop-portal.service.d/override.conf' dest: "{{ xdg_config_dir }}/systemd/user/xdg-desktop-portal.service.d/override.conf"
mode: '0755' mode: "0755"
notify: user daemon-reload notify: user daemon-reload

View file

@ -1,66 +1,67 @@
---
- name: Include mpd defaults - name: Include mpd defaults
ansible.builtin.include_vars: ansible.builtin.include_vars:
file: vars/mpd.yml file: vars/mpd.yml
- name: Copy systemd configuration files - name: Copy systemd configuration files
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0644' mode: "0644"
loop: loop:
- src: 'templates/mpd/service.j2' - src: "templates/mpd/service.j2"
dest: '{{ xdg_config_dir }}/systemd/user/mpd.service' dest: "{{ xdg_config_dir }}/systemd/user/mpd.service"
- src: 'templates/mpd/socket.j2' - src: "templates/mpd/socket.j2"
dest: '{{ xdg_config_dir }}/systemd/user/mpd.socket' dest: "{{ xdg_config_dir }}/systemd/user/mpd.socket"
notify: notify:
- stop mpd service - stop mpd service
- restart mpd socket - restart mpd socket
- name: Create mpd files - name: Create mpd files
ansible.builtin.file: ansible.builtin.file:
path: '{{ item.path }}' path: "{{ item.path }}"
state: '{{ item.state }}' state: "{{ item.state }}"
mode: '0755' mode: "0755"
loop: loop:
- path: '{{ mpd_configuration_dir }}' - path: "{{ mpd_configuration_dir }}"
state: 'directory' state: "directory"
- path: '{{ ncmpc_configuration_dir }}' - path: "{{ ncmpc_configuration_dir }}"
state: 'directory' state: "directory"
- path: '{{ ncmpcpp_configuration_dir }}' - path: "{{ ncmpcpp_configuration_dir }}"
state: 'directory' state: "directory"
- path: '{{ mpd_configuration_dir }}/playlists' - path: "{{ mpd_configuration_dir }}/playlists"
state: 'directory' state: "directory"
- path: '{{ mpd_configuration_dir }}/state' - path: "{{ mpd_configuration_dir }}/state"
state: 'touch' state: "touch"
- name: Remove previous mpd files - name: Remove previous mpd files
ansible.builtin.file: ansible.builtin.file:
path: '{{ item.path }}' path: "{{ item.path }}"
state: '{{ item.state }}' state: "{{ item.state }}"
mode: '0755' mode: "0755"
loop: loop:
- path: '{{ mpd_configuration_dir }}/log' - path: "{{ mpd_configuration_dir }}/log"
state: 'absent' state: "absent"
- path: '{{ mpd_configuration_dir }}/database' - path: "{{ mpd_configuration_dir }}/database"
state: 'absent' state: "absent"
- path: '{{ mpd_configuration_dir }}/sticker.sql' - path: "{{ mpd_configuration_dir }}/sticker.sql"
state: 'absent' state: "absent"
- path: '{{ ncmpc_configuration_dir }}' - path: "{{ ncmpc_configuration_dir }}"
state: 'absent' state: "absent"
- name: Copy configuration files - name: Copy configuration files
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0755' mode: "0755"
loop: loop:
- src: 'templates/mpd/mpd.conf.j2' - src: "templates/mpd/mpd.conf.j2"
dest: '{{ mpd_configuration_dir }}/mpd.conf' dest: "{{ mpd_configuration_dir }}/mpd.conf"
- src: 'templates/mpd/ncmpcpp/config.j2' - src: "templates/mpd/ncmpcpp/config.j2"
dest: '{{ ncmpcpp_configuration_dir }}/config' dest: "{{ ncmpcpp_configuration_dir }}/config"
- src: 'templates/mpd/ncmpcpp/bindings.j2' - src: "templates/mpd/ncmpcpp/bindings.j2"
dest: '{{ ncmpcpp_configuration_dir }}/bindings' dest: "{{ ncmpcpp_configuration_dir }}/bindings"
notify: notify:
- stop mpd service - stop mpd service

View file

@ -1,16 +1,17 @@
---
- name: Create configuration directory - name: Create configuration directory
ansible.builtin.file: ansible.builtin.file:
path: '{{ ansible_env.HOME }}/.config/mpv' path: "{{ ansible_env.HOME }}/.config/mpv"
state: directory state: directory
mode: '0700' mode: "0700"
- name: Copy configuration files - name: Copy configuration files
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0644' mode: "0644"
loop: loop:
- src: 'templates/mpv/input.j2' - src: "templates/mpv/input.j2"
dest: '{{ ansible_env.HOME }}/.config/mpv/input.conf' dest: "{{ ansible_env.HOME }}/.config/mpv/input.conf"
- src: 'templates/mpv/config.j2' - src: "templates/mpv/config.j2"
dest: '{{ ansible_env.HOME }}/.config/mpv/mpv.conf' dest: "{{ ansible_env.HOME }}/.config/mpv/mpv.conf"

View file

@ -1,3 +1,4 @@
---
- name: Desktop configuration - name: Desktop configuration
notify: notify:
- restart systemd-networkd - restart systemd-networkd
@ -6,22 +7,22 @@
- name: Setup network configuration - name: Setup network configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: loop:
- src: 'templates/desktop/network/enp1s0.link.j2' - src: "templates/desktop/network/enp1s0.link.j2"
dest: '/etc/systemd/network/20-enp1s0.link' dest: "/etc/systemd/network/20-enp1s0.link"
- src: 'templates/desktop//network/enp1s0.network.j2' - src: "templates/desktop//network/enp1s0.network.j2"
dest: '/etc/systemd/network/20-enp1s0.network' dest: "/etc/systemd/network/20-enp1s0.network"
- name: Remove leftover configuration files - name: Remove leftover configuration files
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: absent state: absent
loop: loop:
- '/etc/systemd/network/30-vmbr0.network' - "/etc/systemd/network/30-vmbr0.network"
- '/etc/systemd/network/30-vmbr0.netdev' - "/etc/systemd/network/30-vmbr0.netdev"

View file

@ -1,3 +1,4 @@
---
# Note that Wireguard does DNS resolution only once during connection. # Note that Wireguard does DNS resolution only once during connection.
# When a client's IP changes, the server should be notified in some way, # When a client's IP changes, the server should be notified in some way,
# using `wg set wg0 peer izHzmRwh2yzICps6pFI2Bg3TnmTD66/8uH4loJpkuD4= endpoint <NEW-IP>:<PORT>` # using `wg set wg0 peer izHzmRwh2yzICps6pFI2Bg3TnmTD66/8uH4loJpkuD4= endpoint <NEW-IP>:<PORT>`
@ -6,7 +7,7 @@
- name: Set hostname - name: Set hostname
become: true become: true
ansible.builtin.hostname: ansible.builtin.hostname:
name: '{{ hostname }}' name: "{{ hostname }}"
use: systemd use: systemd
- name: Copy hosts file - name: Copy hosts file
@ -14,15 +15,15 @@
ansible.builtin.template: ansible.builtin.template:
src: templates/hosts.j2 src: templates/hosts.j2
dest: /etc/hosts dest: /etc/hosts
mode: '0644' mode: "0644"
owner: root owner: root
- name: Copy firewall template - name: Copy firewall template
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: 'templates/{{ ansible_hostname }}/nftables.j2' src: "templates/{{ ansible_hostname }}/nftables.j2"
dest: /etc/nftables.conf dest: /etc/nftables.conf
owner: root owner: root
group: root group: root
mode: '0600' mode: "0600"
notify: restart nftables notify: restart nftables

View file

@ -1,20 +1,21 @@
---
- name: Setup network configuration - name: Setup network configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: loop:
- src: 'templates/xps/network/wlan0-local.network.j2' - src: "templates/xps/network/wlan0-local.network.j2"
dest: '/etc/systemd/network/10-wireless.network' dest: "/etc/systemd/network/10-wireless.network"
- src: 'templates/xps/network/wlan0-frans.network.j2' - src: "templates/xps/network/wlan0-frans.network.j2"
dest: '/etc/systemd/network/11-wireless.network' dest: "/etc/systemd/network/11-wireless.network"
- src: 'templates/xps/network/wlan0.network.j2' - src: "templates/xps/network/wlan0.network.j2"
dest: '/etc/systemd/network/20-wireless.network' dest: "/etc/systemd/network/20-wireless.network"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -24,7 +25,7 @@
ansible.builtin.template: ansible.builtin.template:
src: templates/xps/iwd.j2 src: templates/xps/iwd.j2
dest: /etc/iwd dest: /etc/iwd
mode: '0644' mode: "0644"
owner: root owner: root
- name: Provision iwd configuration - name: Provision iwd configuration
@ -32,14 +33,14 @@
ansible.builtin.template: ansible.builtin.template:
src: templates/xps/iwd.j2 src: templates/xps/iwd.j2
dest: /etc/iwd/main.config dest: /etc/iwd/main.config
mode: '0755' mode: "0755"
owner: root owner: root
notify: restart iwd notify: restart iwd
- name: Remove leftover configuration files - name: Remove leftover configuration files
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: absent state: absent
loop: loop:
- /etc/systemd/network/30-vmbr0.network - /etc/systemd/network/30-vmbr0.network

View file

@ -1,21 +1,22 @@
---
- name: Provision pollkit administrator configuration - name: Provision pollkit administrator configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: 'templates/polkit.j2' src: "templates/polkit.j2"
dest: '/etc/polkit-1/rules.d/49-nopasswd_global.rules' dest: "/etc/polkit-1/rules.d/49-nopasswd_global.rules"
mode: '0755' mode: "0755"
- name: Install shared packages - name: Install shared packages
become: true become: true
community.general.pacman: community.general.pacman:
name: '{{ packages }}' name: "{{ packages }}"
- name: Copy reflector configuration - name: Copy reflector configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: 'templates/reflector.j2' src: "templates/reflector.j2"
dest: '/etc/xdg/reflector/reflector.conf' dest: "/etc/xdg/reflector/reflector.conf"
mode: '0600' mode: "0600"
# started by weekly timer # started by weekly timer
- name: Disable reflector - name: Disable reflector
@ -28,47 +29,56 @@
- name: Copy pacman configuration - name: Copy pacman configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: 'templates/pacman.j2' src: "templates/pacman/config.j2"
dest: '/etc/pacman.conf' dest: "/etc/pacman.conf"
owner: root owner: root
group: root group: root
mode: '0644' mode: "0644"
- name: Create extra conf - name: Create extra conf
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '/etc/pacman.d/extra.conf' path: "/etc/pacman.d/extra.conf"
owner: root owner: root
group: root group: root
state: touch state: touch
mode: '0644' mode: "0644"
- name: Copy systemd-boot pacman hook
become: true
ansible.builtin.template:
src: "templates/pacman/hook.j2"
dest: "/etc/pacman.d/hooks/100-systemd-boot.hook"
owner: root
group: root
mode: "0644"
- name: Setup Wezterm - name: Setup Wezterm
when: "'wezterm' in packages" when: "'wezterm' in packages"
block: block:
- name: Create wezterm configuration dir - name: Create wezterm configuration dir
ansible.builtin.file: ansible.builtin.file:
path: '{{ xdg_config_dir }}/wezterm/includes' path: "{{ xdg_config_dir }}/wezterm/includes"
state: directory state: directory
mode: '0755' mode: "0755"
- name: Copy wezterm configuration files - name: Copy wezterm configuration files
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0755' mode: "0755"
loop: loop:
- src: 'templates/wezterm/wezterm.lua.j2' - src: "templates/wezterm/wezterm.lua.j2"
dest: '{{ xdg_config_dir }}/wezterm/wezterm.lua' dest: "{{ xdg_config_dir }}/wezterm/wezterm.lua"
- src: 'templates/wezterm/includes/colors.lua.j2' - src: "templates/wezterm/includes/colors.lua.j2"
dest: '{{ xdg_config_dir }}/wezterm/includes/colors.lua' dest: "{{ xdg_config_dir }}/wezterm/includes/colors.lua"
- src: 'templates/wezterm/includes/fonts.lua.j2' - src: "templates/wezterm/includes/fonts.lua.j2"
dest: '{{ xdg_config_dir }}/wezterm/includes/fonts.lua' dest: "{{ xdg_config_dir }}/wezterm/includes/fonts.lua"
- src: 'templates/wezterm/includes/window.lua.j2' - src: "templates/wezterm/includes/window.lua.j2"
dest: '{{ xdg_config_dir }}/wezterm/includes/window.lua' dest: "{{ xdg_config_dir }}/wezterm/includes/window.lua"
- name: Enable fstrim timer - name: Enable fstrim timer
become: true become: true
@ -87,19 +97,19 @@
ansible.builtin.file: ansible.builtin.file:
path: /etc/sysctl.d path: /etc/sysctl.d
state: directory state: directory
mode: '0755' mode: "0755"
- name: Copy sysctl files - name: Copy sysctl files
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0755' mode: "0755"
loop: loop:
- src: 'templates/sysctl/99-sysrq.conf.j2' - src: "templates/sysctl/99-sysrq.conf.j2"
dest: '/etc/sysctl.d/99-sysrq.conf' dest: "/etc/sysctl.d/99-sysrq.conf"
- src: 'templates/sysctl/98-forward.conf.j2' - src: "templates/sysctl/98-forward.conf.j2"
dest: '/etc/sysctl.d/98-foward.conf' dest: "/etc/sysctl.d/98-foward.conf"
notify: reload sysctl configuration notify: reload sysctl configuration
- name: Remove the modprobe.d directory - name: Remove the modprobe.d directory
@ -113,28 +123,28 @@
ansible.builtin.file: ansible.builtin.file:
path: /etc/modprobe.d path: /etc/modprobe.d
state: directory state: directory
mode: '0755' mode: "0755"
- name: Copy modprobe configuration files - name: Copy modprobe configuration files
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0755' mode: "0755"
loop: '{{ modprobe_templates }}' loop: "{{ modprobe_templates }}"
when: modprobe_templates when: modprobe_templates
- name: Copy kernel parameters template - name: Copy kernel parameters template
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: 'templates/{{ ansible_hostname }}/cmdline.j2' src: "templates/{{ ansible_hostname }}/cmdline.j2"
dest: '/etc/kernel/cmdline' dest: "/etc/kernel/cmdline"
mode: '0755' mode: "0755"
- name: Remove the mkinitcpio directories - name: Remove the mkinitcpio directories
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: absent state: absent
loop: loop:
- /etc/mkinitcpio.conf.d - /etc/mkinitcpio.conf.d
@ -143,9 +153,9 @@
- name: Recreate the mkinitcpio directories - name: Recreate the mkinitcpio directories
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: directory state: directory
mode: '0755' mode: "0755"
loop: loop:
- /etc/mkinitcpio.conf.d - /etc/mkinitcpio.conf.d
- /etc/mkinitcpio.d - /etc/mkinitcpio.d
@ -153,53 +163,17 @@
- name: Copy mkinitcpio configuration files - name: Copy mkinitcpio configuration files
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
mode: '0755' mode: "0755"
loop: '{{ mkinitcpio_templates }}' loop: "{{ mkinitcpio_templates }}"
when: '{{ mkinitcpio_templates | length > 0 }}' when: "mkinitcpio_templates | length > 0"
- name: Regenerate initramfs images - name: Regenerate initramfs images
become: true become: true
ansible.builtin.command: 'mkinitcpio --allpresets' ansible.builtin.command: "mkinitcpio --allpresets"
register: mkinitcpio_stats register: mkinitcpio_stats
- name: Log mkinitcpio stdout - name: Log mkinitcpio stdout
ansible.builtin.debug: ansible.builtin.debug:
var: mkinitcpio_stats.stdout_lines var: mkinitcpio_stats.stdout_lines
- name: Create a Linux UEFI boot entry
become: true
ansible.builtin.command: efibootmgr \
--create \
--disk '{{ boot_configuration.disk }}' \
--part '{{ boot_configuration.partition }}' \
--label 'Arch Linux' \
--loader '\EFI\Linux\linux.efi'\
--unicode
--index 0
register: efi_linux_stats
when: register_uefi_entries
- name: Log efibootmgr stdout
ansible.builtin.debug:
var: efi_linux_stats.stdout_lines
when: register_uefi_entries
- name: Create a Linux LTS UEFI boot entry
become: true
ansible.builtin.command: efibootmgr \
--create \
--disk '{{ boot_configuration.disk }}' \
--part '{{ boot_configuration.partition }}' \
--label 'Arch Linux LTS' \
--loader '\EFI\Linux\linux-lts.efi'\
--unicode
--index 1
register: efi_linux_lts_stats
when: register_uefi_entries
- name: Log efibootmgr LTS stdout
ansible.builtin.debug:
var: efi_linux_lts_stats.stdout_lines
when: register_uefi_entries

View file

@ -1,8 +1,9 @@
---
- name: Create configuration dir - name: Create configuration dir
ansible.builtin.file: ansible.builtin.file:
path: '{{ xdg_config_dir }}/syncthing' path: "{{ xdg_config_dir }}/syncthing"
state: directory state: directory
mode: '0755' mode: "0755"
- name: Stop syncthing service - name: Stop syncthing service
ansible.builtin.systemd: ansible.builtin.systemd:
@ -12,7 +13,7 @@
- name: Copy configuration file - name: Copy configuration file
ansible.builtin.template: ansible.builtin.template:
src: 'templates/syncthing/config.j2' src: "templates/syncthing/config.j2"
dest: '{{ xdg_config_dir }}/syncthing/config.xml' dest: "{{ xdg_config_dir }}/syncthing/config.xml"
mode: '0640' mode: "0640"
notify: start syncthing notify: start syncthing

View file

@ -1,28 +1,30 @@
---
- name: Setup systemd user service folder - name: Setup systemd user service folder
ansible.builtin.file: ansible.builtin.file:
path: '{{ xdg_config_dir }}/systemd/user' path: "{{ xdg_config_dir }}/systemd/user"
state: directory state: directory
mode: '0755' mode: "0755"
- name: Add ssh-agent service - name: Add ssh-agent service
ansible.builtin.template: ansible.builtin.template:
src: 'templates/ssh-agent.j2' src: "templates/ssh-agent.j2"
dest: '{{ xdg_config_dir }}/systemd/user/ssh-agent.service' dest: "{{ xdg_config_dir }}/systemd/user/ssh-agent.service"
mode: '0644' mode: "0644"
notify: restart user ssh-agent notify: restart user ssh-agent
- name: Copy tmux service - name: Copy tmux service
ansible.builtin.template: ansible.builtin.template:
src: 'templates/tmux.j2' src: "templates/tmux.j2"
dest: '{{ xdg_config_dir }}/systemd/user/tmux.service' dest: "{{ xdg_config_dir }}/systemd/user/tmux.service"
mode: '0644' mode: "0644"
notify: notify:
- user daemon-reload - user daemon-reload
- restart tmux service - restart tmux service
- name: Copy tmux startup script - name: Copy tmux startup script
ansible.builtin.copy: ansible.builtin.copy:
src: 'files/tmux_start' src: "files/tmux_start"
dest: '{{ ansible_env.HOME }}/.local/bin/tmux_start' dest: "{{ ansible_env.HOME }}/.local/bin/tmux_start"
mode: '0740' mode: "0740"
force: false force: false
# setup systemd-boot pacman hook

View file

@ -1,45 +1,43 @@
- name: copy timer files ---
- name: Copy timer files
become: true become: true
template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
mode: '0644' mode: "0644"
loop: loop:
- { src: 'templates/timer/daily_timer.j2', dest: '/etc/systemd/system/daily.timer' } - { src: "templates/timer/daily_timer.j2", dest: "/etc/systemd/system/daily.timer" }
- { src: 'templates/timer/weekly_timer.j2', dest: '/etc/systemd/system/weekly.timer' } - { src: "templates/timer/weekly_timer.j2", dest: "/etc/systemd/system/weekly.timer" }
notify: notify:
- enable daily timer - enable daily timer
- enable weekly timer - enable weekly timer
- name: copy target files - name: Copy target files
become: true become: true
template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
mode: '0644' mode: "0644"
loop: loop:
- { src: 'templates/timer/daily_target.j2', dest: '/etc/systemd/system/daily.target' } - { src: "templates/timer/daily_target.j2", dest: "/etc/systemd/system/daily.target" }
- { - { src: "templates/timer/weekly_target.j2", dest: "/etc/systemd/system/weekly.target" }
src: 'templates/timer/weekly_target.j2',
dest: '/etc/systemd/system/weekly.target',
}
- name: create target directories - name: Create target directories
become: true become: true
file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: directory state: directory
owner: root owner: root
mode: '0755' mode: "0755"
loop: loop:
- '/etc/systemd/system/daily.target.wants' - "/etc/systemd/system/daily.target.wants"
- '/etc/systemd/system/weekly.target.wants' - "/etc/systemd/system/weekly.target.wants"
- name: add reflector to weekly timer - name: Add reflector to weekly timer
become: true become: true
file: ansible.builtin.file:
src: '/usr/lib/systemd/system/reflector.service' src: "/usr/lib/systemd/system/reflector.service"
dest: '/etc/systemd/system/weekly.target.wants/reflector.service' dest: "/etc/systemd/system/weekly.target.wants/reflector.service"
state: link state: link

View file

@ -1,3 +1,4 @@
---
- name: Include wireguard media defaults - name: Include wireguard media defaults
ansible.builtin.include_vars: ansible.builtin.include_vars:
file: vars/wireguard-media.yml file: vars/wireguard-media.yml
@ -5,16 +6,16 @@
- name: Create Wireguard directories - name: Create Wireguard directories
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0750' mode: "0750"
state: directory state: directory
recurse: true recurse: true
loop: loop:
- '{{ vpn_config_dir }}' - "{{ vpn_config_dir }}"
- '{{ wireguard_media_defaults.private_key_path | dirname }}' - "{{ wireguard_media_defaults.private_key_path | dirname }}"
- '{{ wireguard_media_defaults.public_key_path | dirname }}' - "{{ wireguard_media_defaults.public_key_path | dirname }}"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -22,17 +23,17 @@
- name: Copy Wireguard credentials - name: Copy Wireguard credentials
become: true become: true
ansible.builtin.copy: ansible.builtin.copy:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: loop:
- dest: '{{ wireguard_media_defaults.public_key_path }}' - dest: "{{ wireguard_media_defaults.public_key_path }}"
src: 'files/wireguard-media/{{ ansible_hostname }}/fudiggity.pub' src: "files/wireguard-media/{{ ansible_hostname }}/fudiggity.pub"
- dest: '{{ wireguard_media_defaults.private_key_path }}' - dest: "{{ wireguard_media_defaults.private_key_path }}"
src: 'files/wireguard-media/{{ ansible_hostname }}/fudiggity.key' src: "files/wireguard-media/{{ ansible_hostname }}/fudiggity.key"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -40,12 +41,12 @@
- name: Copy Wireguard preshared keys - name: Copy Wireguard preshared keys
become: true become: true
ansible.builtin.copy: ansible.builtin.copy:
src: '{{ item.preshared_key_source_path }}' src: "{{ item.preshared_key_source_path }}"
dest: '{{ item.preshared_key_path }}' dest: "{{ item.preshared_key_path }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: '{{ wireguard_media_defaults.peers }}' loop: "{{ wireguard_media_defaults.peers }}"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -53,17 +54,17 @@
- name: Setup network configuration - name: Setup network configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: loop:
- src: 'templates/{{ ansible_hostname }}/network/wg1.network.j2' - src: "templates/{{ ansible_hostname }}/network/wg1.network.j2"
dest: '/etc/systemd/network/40-wg1.network' dest: "/etc/systemd/network/40-wg1.network"
- src: 'templates/{{ ansible_hostname }}/network/wg1.netdev.j2' - src: "templates/{{ ansible_hostname }}/network/wg1.netdev.j2"
dest: '/etc/systemd/network/40-wg1.netdev' dest: "/etc/systemd/network/40-wg1.netdev"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved

View file

@ -1,3 +1,4 @@
---
- name: Include wireguard defaults - name: Include wireguard defaults
ansible.builtin.include_vars: ansible.builtin.include_vars:
file: vars/wireguard.yml file: vars/wireguard.yml
@ -5,16 +6,16 @@
- name: Create Wireguard directories - name: Create Wireguard directories
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0750' mode: "0750"
state: directory state: directory
recurse: true recurse: true
loop: loop:
- '{{ vpn_config_dir }}' - "{{ vpn_config_dir }}"
- '{{ wireguard_defaults.private_key_path | dirname }}' - "{{ wireguard_defaults.private_key_path | dirname }}"
- '{{ wireguard_defaults.public_key_path | dirname }}' - "{{ wireguard_defaults.public_key_path | dirname }}"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -22,17 +23,17 @@
- name: Copy Wireguard credentials - name: Copy Wireguard credentials
become: true become: true
ansible.builtin.copy: ansible.builtin.copy:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: loop:
- dest: '{{ wireguard_defaults.public_key_path }}' - dest: "{{ wireguard_defaults.public_key_path }}"
src: 'files/wireguard/{ ansible_hostname }}/fudiggity.pub' src: "files/wireguard/{ ansible_hostname }}/fudiggity.pub"
- dest: '{{ wireguard_defaults.private_key_path }}' - dest: "{{ wireguard_defaults.private_key_path }}"
src: 'files/wireguard/{{ ansible_hostname }}/fudiggity.key' src: "files/wireguard/{{ ansible_hostname }}/fudiggity.key"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -40,12 +41,12 @@
- name: Copy Wireguard preshared keys - name: Copy Wireguard preshared keys
become: true become: true
ansible.builtin.copy: ansible.builtin.copy:
src: '{{ item.preshared_key_source_path }}' src: "{{ item.preshared_key_source_path }}"
dest: '{{ item.preshared_key_path }}' dest: "{{ item.preshared_key_path }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: '{{ wireguard_defaults.peers }}' loop: "{{ wireguard_defaults.peers }}"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved
@ -53,17 +54,17 @@
- name: Setup network configuration - name: Setup network configuration
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: '{{ item.src }}' src: "{{ item.src }}"
dest: '{{ item.dest }}' dest: "{{ item.dest }}"
owner: root owner: root
group: systemd-network group: systemd-network
mode: '0640' mode: "0640"
loop: loop:
- src: 'templates/{{ ansible_hostname }}/network/wg0.network.j2' - src: "templates/{{ ansible_hostname }}/network/wg0.network.j2"
dest: '/etc/systemd/network/40-wg0.network' dest: "/etc/systemd/network/40-wg0.network"
- src: 'templates/{{ ansible_hostname }}/network/wg0.netdev.j2' - src: "templates/{{ ansible_hostname }}/network/wg0.netdev.j2"
dest: '/etc/systemd/network/40-wg0.netdev' dest: "/etc/systemd/network/40-wg0.netdev"
notify: notify:
- restart systemd-networkd - restart systemd-networkd
- restart systemd-resolved - restart systemd-resolved

View file

@ -1,3 +1,4 @@
---
- name: Provision powertop systemd service - name: Provision powertop systemd service
become: true become: true
ansible.builtin.file: ansible.builtin.file:
@ -8,21 +9,21 @@
block: block:
- name: Create configuration directory - name: Create configuration directory
ansible.builtin.file: ansible.builtin.file:
path: '{{ xdg_config_dir }}/pa-dlna' path: "{{ xdg_config_dir }}/pa-dlna"
state: directory state: directory
mode: '0755' mode: "0755"
- name: Copy configuration file - name: Copy configuration file
ansible.builtin.template: ansible.builtin.template:
src: templates/xps/pa-dlna/config.j2 src: templates/xps/pa-dlna/config.j2
dest: '{{ xdg_config_dir }}/pa-dlna/pa-dlna.conf' dest: "{{ xdg_config_dir }}/pa-dlna/pa-dlna.conf"
mode: '0755' mode: "0755"
- name: Copy systemd service - name: Copy systemd service
ansible.builtin.template: ansible.builtin.template:
src: templates/xps/pa-dlna/service.j2 src: templates/xps/pa-dlna/service.j2
dest: '{{ xdg_config_dir }}/systemd/user/pa-dlna.service' dest: "{{ xdg_config_dir }}/systemd/user/pa-dlna.service"
mode: '0755' mode: "0755"
- name: Create virtualenv directory - name: Create virtualenv directory
become: true become: true
@ -31,16 +32,16 @@
state: directory state: directory
owner: sonny owner: sonny
group: sonny group: sonny
mode: '0755' mode: "0755"
- name: Install pa-dlna - name: Install pa-dlna
ansible.builtin.pip: ansible.builtin.pip:
name: 'pa-dlna=={{ pa_dlna_version }}' name: "pa-dlna=={{ pa_dlna_version }}"
virtualenv: /opt/virtualenv/pa-dlna virtualenv: /opt/virtualenv/pa-dlna
virtualenv_command: python3.13 -m venv virtualenv_command: python3.13 -m venv
- name: Install python-systemd - name: Install python-systemd
ansible.builtin.pip: ansible.builtin.pip:
name: 'python-systemd=={{ pa_dlna_systemd_version }}' name: "python-systemd=={{ pa_dlna_systemd_version }}"
virtualenv: /opt/virtualenv/pa-dlna virtualenv: /opt/virtualenv/pa-dlna
virtualenv_command: python3.13 -m venv virtualenv_command: python3.13 -m venv

View file

@ -41,7 +41,8 @@ CheckSpace
VerbosePkgLists VerbosePkgLists
ParallelDownloads = 5 ParallelDownloads = 5
DownloadUser = alpm DownloadUser = alpm
#DisableSandbox ##DisableSandboxFilesystem
#DisableSandboxSyscalls
# By default, pacman accepts packages signed by keys that its local keyring # By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages. # trusts (see pacman-key and its man page), as well as unsigned packages.

11
templates/pacman/hook.j2 Normal file
View file

@ -0,0 +1,11 @@
# {{ ansible_managed }}
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
[Action]
Description = Gracefully upgrading systemd-boot...
When = PostTransaction
Exec = /usr/bin/systemctl restart systemd-boot-update.service

View file

@ -4,7 +4,7 @@ local wezterm = require 'wezterm';
return { return {
font = wezterm.font( font = wezterm.font(
'MonaspiceNe Nerd Font Mono', '{{ wezterm_font }}',
{ weight = 'Regular', stretch = 'Normal', style = 'Normal' } { weight = 'Regular', stretch = 'Normal', style = 'Normal' }
), ),
@ -21,6 +21,5 @@ return {
'ss06', 'ss06',
'ss07', 'ss07',
'ss08', 'ss08',
'liga'
} }
} }

View file

@ -1,10 +1,11 @@
---
mpd_listen_address: 127.0.0.1 mpd_listen_address: 127.0.0.1
mpd_listen_port: 6600 mpd_listen_port: 6600
mpd_remote_address: 'mpd.{{ server_domain }}' mpd_remote_address: "mpd.{{ server_domain }}"
mpd_remote_port: 21000 mpd_remote_port: 21000
mpd_remote_stream_port: 8000 mpd_remote_stream_port: 8000
mpd_configuration_dir: '{{ ansible_env.HOME }}/.config/mpd' mpd_configuration_dir: "{{ ansible_env.HOME }}/.config/mpd"
ncmpc_configuration_dir: '{{ ansible_env.HOME }}/.config/ncmpc' ncmpc_configuration_dir: "{{ ansible_env.HOME }}/.config/ncmpc"
ncmpcpp_configuration_dir: '{{ ansible_env.HOME }}/.config/ncmpcpp' ncmpcpp_configuration_dir: "{{ ansible_env.HOME }}/.config/ncmpcpp"

View file

@ -1,22 +1,23 @@
vpn_config_dir: '/etc/wireguard' ---
vpn_config_dir: "/etc/wireguard"
wireguard_media_defaults: wireguard_media_defaults:
prefix: 24 prefix: 24
interface: wg1 interface: wg1
dns: 10.0.1.1 dns: 10.0.1.1
domains: domains:
- '~media-vpn.{{ server_domain }}' - "~media-vpn.{{ server_domain }}"
- '~jellyfin.{{ server_domain }}' - "~jellyfin.{{ server_domain }}"
public_key_path: '{{ vpn_config_dir }}/keys/public/media/fudiggity.pub' public_key_path: "{{ vpn_config_dir }}/keys/public/media/fudiggity.pub"
private_key_path: '{{ vpn_config_dir }}/keys/private/media/fudiggity.key' private_key_path: "{{ vpn_config_dir }}/keys/private/media/fudiggity.key"
peers: peers:
- name: fudiggity - name: fudiggity
allowed_ips: allowed_ips:
- 10.0.1.0/24 - 10.0.1.0/24
- 172.8.238.0/24 - 172.8.238.0/24
endpoint: '{{ server_domain }}:51903' endpoint: "{{ server_domain }}:51903"
public_key: EugKeo63C5N5kz9ShMHtYswO9Qh6mE00MtfLSFmqqjg= public_key: EugKeo63C5N5kz9ShMHtYswO9Qh6mE00MtfLSFmqqjg=
preshared_key_path: '{{ vpn_config_dir }}/keys/private/media/fudiggity.psk' preshared_key_path: "{{ vpn_config_dir }}/keys/private/media/fudiggity.psk"
preshared_key_source_path: files/wireguard-media/{{ ansible_hostname }}/preshared.psk preshared_key_source_path: files/wireguard-media/{{ ansible_hostname }}/preshared.psk

View file

@ -1,18 +1,19 @@
vpn_config_dir: '/etc/wireguard' ---
vpn_config_dir: "/etc/wireguard"
wireguard_defaults: wireguard_defaults:
prefix: 24 prefix: 24
interface: wg0 interface: wg0
dns: 10.0.0.1 dns: 10.0.0.1
domains: domains:
- '~vpn.{{ server_domain }}' - "~vpn.{{ server_domain }}"
- '~transmission.{{ server_domain }}' - "~transmission.{{ server_domain }}"
- '~syncthing.{{ server_domain }}' - "~syncthing.{{ server_domain }}"
- '~radicale.{{ server_domain }}' - "~radicale.{{ server_domain }}"
- '~mpd.{{ server_domain }}' - "~mpd.{{ server_domain }}"
public_key_path: '{{ vpn_config_dir }}/keys/public/default/fudiggity.pub' public_key_path: "{{ vpn_config_dir }}/keys/public/default/fudiggity.pub"
private_key_path: '{{ vpn_config_dir }}/keys/private/default/fudiggity.key' private_key_path: "{{ vpn_config_dir }}/keys/private/default/fudiggity.key"
peers: peers:
- name: fudiggity - name: fudiggity
@ -22,7 +23,7 @@ wireguard_defaults:
- 172.32.238.0/24 - 172.32.238.0/24
- 172.64.238.0/24 - 172.64.238.0/24
- 172.128.238.0/24 - 172.128.238.0/24
endpoint: '{{ server_domain }}:51902' endpoint: "{{ server_domain }}:51902"
public_key: CeybSMpJiicXmndIuhe89Bay3z3PEdYNyAwIFsacBEo= public_key: CeybSMpJiicXmndIuhe89Bay3z3PEdYNyAwIFsacBEo=
preshared_key_path: '{{ vpn_config_dir }}/keys/private/default/preshared-fudiggity.psk' preshared_key_path: "{{ vpn_config_dir }}/keys/private/default/preshared-fudiggity.psk"
preshared_key_source_path: files/wireguard/{{ ansible_hostname }}/preshared.psk preshared_key_source_path: files/wireguard/{{ ansible_hostname }}/preshared.psk

14
xps.yml
View file

@ -1,3 +1,4 @@
---
- name: Include default playbook - name: Include default playbook
ansible.builtin.import_playbook: default.yml ansible.builtin.import_playbook: default.yml
@ -5,25 +6,24 @@
hosts: xps hosts: xps
gather_facts: true gather_facts: true
tasks: tasks:
- name: Wireguard provisioning - name: Wireguard provisioning
ansible.builtin.import_tasks: 'tasks/wireguard.yml' ansible.builtin.import_tasks: "tasks/wireguard.yml"
tags: wireguard tags: wireguard
- name: Wireguard media provisioning - name: Wireguard media provisioning
ansible.builtin.import_tasks: 'tasks/wireguard-media.yml' ansible.builtin.import_tasks: "tasks/wireguard-media.yml"
tags: wireguard-media tags: wireguard-media
- name: MPD provisioning - name: MPD provisioning
ansible.builtin.import_tasks: 'tasks/mpd.yml' ansible.builtin.import_tasks: "tasks/mpd.yml"
tags: mpd tags: mpd
- name: Syncthing provisioning - name: Syncthing provisioning
ansible.builtin.import_tasks: 'tasks/syncthing.yml' ansible.builtin.import_tasks: "tasks/syncthing.yml"
tags: syncthing tags: syncthing
- name: Desktop provisioning - name: Desktop provisioning
ansible.builtin.import_tasks: 'tasks/xps.yml' ansible.builtin.import_tasks: "tasks/xps.yml"
tags: xps tags: xps
handlers: handlers:
@ -31,4 +31,4 @@
ansible.builtin.import_tasks: handlers.yml ansible.builtin.import_tasks: handlers.yml
- name: Import common role handlers - name: Import common role handlers
ansible.builtin.import_tasks: 'roles/common/handlers/user.yml' ansible.builtin.import_tasks: "roles/common/handlers/user.yml"