From e51abbfebe88c4ab01cee907ad4a5055b7005f8c Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Tue, 1 Apr 2025 14:34:43 +0200 Subject: [PATCH 1/5] feat(packages): Add packages to installation groups Many new packages added which I am using. Some void-specific packages, mostly usable for headless devices, but some specific to desktop (GUI) devices, which are added to the relevant group variable file. Additionally, contains some custom packages from my personal repository, which I am not sure yet how to best proceed with. But since we also install my custom repo (in the packages role) this should be fine for the moment. --- group_vars/desktop.yaml | 13 +++++++++++++ group_vars/headless.yaml | 41 ++++++++++++++++++++++++++++++++++------ 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/group_vars/desktop.yaml b/group_vars/desktop.yaml index 0e19c90..c201701 100644 --- a/group_vars/desktop.yaml +++ b/group_vars/desktop.yaml @@ -12,9 +12,22 @@ packages_de: - mako - slurp - waylock + - wlsunset + - swaybg + - swayidle packages_gui: - gimp + - nextcloud-client - qutebrowser - python3-adblock # dependency for qutebrowser adblocking - sioyek - wdisplays + - wezterm + - timg # requires wezterm +packages_games: + - lutris + - linux-firmware-intel + - mesa-dri # TODO: currently automatically installed by wayland role + - vulkan-loader + - mesa-vulkan-intel + - libva-intel-driver # since I have pre-Coffee Lake CPU. For newer GPUs use intel-media-driver diff --git a/group_vars/headless.yaml b/group_vars/headless.yaml index 415667c..2b1ad36 100644 --- a/group_vars/headless.yaml +++ b/group_vars/headless.yaml @@ -1,9 +1,12 @@ packages_voidspecific: + - snooze + - vsv # nice service listing util (also svs exists) - xmirror - xtools packages_terminal: - abduco + - aerc - ansible - atuin - autofs @@ -11,59 +14,74 @@ packages_terminal: - bc - bottom - brightnessctl + - carapace - chafa - docker - docker-compose - docx2txt - duf - dust + - enca # provides enconv for vifm previews - entr - eza - fd - flavours # TODO: To be replaced with tinty - fwupd + - fuse-sshfs - gallery-dl - git-lfs + - go + - goimapnotify - htop - iftop - ImageMagick + - libmagick-devel # required for image.nvim - incus + - ijq # jiq replacement - jrnl + - just - khal - khard + - lua51 + - lua51-devel # required for nvim plugs + - luarocks-lua51 # required for nvim plugs + - miniserve - moreutils - msmtp - - neomutt - neovim - newsboat + - nmap + - notmuch - nushell - papis - pass - pdftk - podman + - python3 + - python3-pyperclip # for copying from qutebrowser & neovim + - python3-jupyter - restic - ripgrep - sc-im - sane - sane-airscan - - snooze - starship - - swaybg - - swayidle + - tailspin - task - tasksh - tectonic - thermald - timewarrior + - tlp + - tmux - topgrade - translate-shell - uv - vdirsyncer - vifm - visidata - - wezterm + - w3m - wlopm - - wlsunset - wtype - yq-go - yt-dlp @@ -72,9 +90,20 @@ packages_terminal: - zr # zsh plugin manager - zsh +packages_spellcheck: + - enchant2 + - enchant2-hunspell + - enchant2-nuspell + - hunspell-en + - hunspell-en_GB-all + - hunspell-de + - hunspell-fr_FR + packages_custom: - bemoji - dotter - filtile-bin - localsend-go - ripgrep-all + - netbird-bin + - topen From e9accf96219479f4f0784780465817add8b61561 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Wed, 9 Jul 2025 12:17:02 +0200 Subject: [PATCH 2/5] fix(pipewire): Fix alsa config task naming --- roles/pipewire/tasks/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/pipewire/tasks/main.yaml b/roles/pipewire/tasks/main.yaml index e60fe20..4ce9da4 100644 --- a/roles/pipewire/tasks/main.yaml +++ b/roles/pipewire/tasks/main.yaml @@ -56,7 +56,7 @@ - packages - alsa -- name: Set up wireplumber to auto start +- name: Ensure alsa config directory exists ansible.builtin.file: dest: "/etc/alsa/conf.d" state: directory From 9c510251ca0b6e05bc42b1f688d0d78a12564ed5 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Wed, 9 Jul 2025 12:17:02 +0200 Subject: [PATCH 3/5] feat(vault): Encode system hostname in vault variable --- group_vars/all/vault.yaml | 42 +++++++++++++++++++-------------------- inv-local.yaml | 1 + 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/group_vars/all/vault.yaml b/group_vars/all/vault.yaml index 225958a..10c05c0 100644 --- a/group_vars/all/vault.yaml +++ b/group_vars/all/vault.yaml @@ -1,22 +1,22 @@ $ANSIBLE_VAULT;1.1;AES256 -38303561343934626363616162303635316437313931306262313733316433373335663336343433 -3963333661613634366462666366326338346538393237310a663635373838356637303464383262 -30313034333137313466393963373237336461316530386365383530613533616461396164393937 -6135316435636638630a363864303133353137633066336138616133316164346530623035303433 -34316338363065666463363162663334333762353832373834666366346639646438663936303231 -34646435336335393039343130666338663762643535343139396638306164666566653632336432 -30373232626333363530343433326364353061663239623236666436373839383137363536623236 -66306330333636303166383737653435636537353630356634353161303834646438316330393061 -61323366333530356235663763366361353538613764353561623934366237356363323834393535 -66383765636233353831346434323139303562323030616637653136383536363130346662393139 -37623439646535653061383963303465653739626331383861616235363564663961323964663938 -31666339363166353532336239393735623337376162363633373062653261663936666535383833 -38376330636536376631613134323439383465666439643930386335346533383434386637383765 -37383033373235653765623531626531623035636665616162653865386361343465656638303664 -66326164663631353035383636383536323032666263303636613065656564653766363162623063 -35336131373238373135633738363030636665336631653039393561626436623166326434643638 -63383230613364333736356434626330373861353635333463343365666162373038643965383361 -66356463663161303861366363363066623862623733333131636535333865623035363738383134 -36643937383731626366383432366632366332393066356561643363313435653236313139646365 -65313061626361663431326236346131346561646439353036316532613562343166343738616331 -3834 +63643336356536303236626666336363376631316464353734663530393862396664646435346637 +6362303761343537323663383361386563313134343236620a633861353333303665396130633332 +64376139313165353366306235633138313437643738366662643730343632353034356234636165 +3563346435336639650a303437663639636137346665623036613965306663613762323230653931 +37376436643866323861656338356137373437623437626632653566626239666433346330373231 +39353761646463653866653664353734333761396131303166346163326139363036363531396464 +36303430323730623631636537376436633562386239336337303332306663636166303864353866 +35356436663337303432383436663336313235346235643935623733306635613938373639323832 +66303461356331623138363733333161333338336666356363353232373533386464363163663734 +31323334663433373834313737313739363832646465663338306461643636633932316462616437 +63376134393139383138366631646361396636396234326339373133633839353830383034306538 +35623631386234346537373565643164636430616235656634613361653766313962613962373334 +31393639343061336431336265323933323236656330303938623736353864316462633439656533 +64323965386235643566643137333864323934663962623065623937323235346233313133623762 +63333264613233643765313064613566333536653065333262386432643535373735633735653734 +33393933653265393764653565663933343463323463373836303135333234663530393437306661 +34393333396537663432313233363035326666333031616530353432336364663239303238643266 +63633337376239396632386564353265386434666236636430366337313338646139623834333665 +63653966626236346631343533316635663463656363393937356232353138303631386362383934 +36636561323434366430383461616365376138633065653866333337616334363534336635303933 +35316364636335346233396332663536656637616134376164333435383235393531 diff --git a/inv-local.yaml b/inv-local.yaml index 197eb83..5401094 100644 --- a/inv-local.yaml +++ b/inv-local.yaml @@ -6,6 +6,7 @@ target_system: void_local: ansible_host: 127.0.0.1 ansible_connection: ansible.builtin.local + host_name: "{{ vault_host_name }}" hostsystem: From 5e64e896479fb9fae7a20a3145b57e26050ac866 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Mon, 20 Oct 2025 11:40:31 +0200 Subject: [PATCH 4/5] feat(nfs): Add auto mounted nfs filesystem --- group_vars/headless.yaml | 1 - play.yaml | 2 ++ roles/nfs/defaults/main.yaml | 12 +++++++ roles/nfs/handlers/main.yaml | 8 +++++ roles/nfs/tasks/main.yaml | 48 ++++++++++++++++++++++++++++ roles/nfs/templates/auto.nfs.jinja | 3 ++ roles/nfs/templates/nfs.autofs.jinja | 1 + 7 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 roles/nfs/defaults/main.yaml create mode 100644 roles/nfs/handlers/main.yaml create mode 100644 roles/nfs/tasks/main.yaml create mode 100644 roles/nfs/templates/auto.nfs.jinja create mode 100644 roles/nfs/templates/nfs.autofs.jinja diff --git a/group_vars/headless.yaml b/group_vars/headless.yaml index 2b1ad36..fc9999b 100644 --- a/group_vars/headless.yaml +++ b/group_vars/headless.yaml @@ -9,7 +9,6 @@ packages_terminal: - aerc - ansible - atuin - - autofs - bat - bc - bottom diff --git a/play.yaml b/play.yaml index c04d189..13f1f0f 100644 --- a/play.yaml +++ b/play.yaml @@ -44,6 +44,8 @@ tags: power - role: gnupg tags: gnupg + - role: nfs + tags: nfs - role: fonts tags: fonts diff --git a/roles/nfs/defaults/main.yaml b/roles/nfs/defaults/main.yaml new file mode 100644 index 0000000..07f2dae --- /dev/null +++ b/roles/nfs/defaults/main.yaml @@ -0,0 +1,12 @@ +--- + +nfs_mount_dir: /mnt/nfs + +# TODO: Remove hard-coding to IP for vpn access +nfs_mounts: + - name: media + src: "192.168.0.151:/srv/media" + - name: files + src: "192.168.0.151:/srv/files" + - name: videos + src: "192.168.0.151:/mnt/ext/data/videos" diff --git a/roles/nfs/handlers/main.yaml b/roles/nfs/handlers/main.yaml new file mode 100644 index 0000000..9c93e0f --- /dev/null +++ b/roles/nfs/handlers/main.yaml @@ -0,0 +1,8 @@ +--- +- name: Restart autofs service + community.general.runit: + name: autofs + state: restarted + retries: 3 + tags: + - services diff --git a/roles/nfs/tasks/main.yaml b/roles/nfs/tasks/main.yaml new file mode 100644 index 0000000..a5ec3af --- /dev/null +++ b/roles/nfs/tasks/main.yaml @@ -0,0 +1,48 @@ +--- +- name: Install nfs related packages + community.general.xbps: + name: + - nfs-utils + - autofs + state: "{{ desired_package_state | default('present') }}" + tags: + - packages + +- name: Ensure autofs master config directory + ansible.builtin.file: + dest: "/etc/autofs/auto.master.d" + state: directory + mode: "0755" + +- name: Add nfs master autofs configuration + ansible.builtin.template: + src: nfs.autofs.jinja + dest: "/etc/autofs/auto.master.d/nfs.autofs" + owner: root + group: root + mode: "0644" + force: true + notify: Restart autofs service + +- name: Ensure nfs main mount directory + ansible.builtin.file: + dest: "{{ nfs_mount_dir }}" + state: directory + mode: "0755" + +- name: Add nfs automounts configuration + ansible.builtin.template: + src: auto.nfs.jinja + dest: "/etc/autofs/auto.nfs" + owner: root + group: root + mode: "0644" + force: true + notify: Restart autofs service + +- name: Enable autofs service + ansible.builtin.file: + force: "yes" + src: "/etc/sv/autofs" + dest: "/etc/runit/runsvdir/default/autofs" + state: link diff --git a/roles/nfs/templates/auto.nfs.jinja b/roles/nfs/templates/auto.nfs.jinja new file mode 100644 index 0000000..354b1b2 --- /dev/null +++ b/roles/nfs/templates/auto.nfs.jinja @@ -0,0 +1,3 @@ +{% for mount in nfs_mounts %} +{{ mount.name }} -fstype=nfs4,rw,soft,intr {{ mount.src }} +{% endfor %} diff --git a/roles/nfs/templates/nfs.autofs.jinja b/roles/nfs/templates/nfs.autofs.jinja new file mode 100644 index 0000000..5934528 --- /dev/null +++ b/roles/nfs/templates/nfs.autofs.jinja @@ -0,0 +1 @@ +{{ nfs_mount_dir }} /etc/autofs/auto.nfs --timeout=300 From da4f49305e0ddfad01253046f8f3167791e9f900 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Mon, 20 Oct 2025 11:40:31 +0200 Subject: [PATCH 5/5] fix(nfs): Remove deprecated nfs mounting parameter 'intr' is deprecated for nfs (v4?), as it shows in the dmesg kernel buffer. --- roles/nfs/templates/auto.nfs.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nfs/templates/auto.nfs.jinja b/roles/nfs/templates/auto.nfs.jinja index 354b1b2..5c82f0f 100644 --- a/roles/nfs/templates/auto.nfs.jinja +++ b/roles/nfs/templates/auto.nfs.jinja @@ -1,3 +1,3 @@ {% for mount in nfs_mounts %} -{{ mount.name }} -fstype=nfs4,rw,soft,intr {{ mount.src }} +{{ mount.name }} -fstype=nfs4,rw,soft {{ mount.src }} {% endfor %}