From 0de7960a3a7e761710edc878765ec010f3f41aa8 Mon Sep 17 00:00:00 2001 From: jaydee Date: Tue, 21 Oct 2025 08:17:22 +0200 Subject: [PATCH 1/7] lala --- hosts_roles.yml | 8 +++ roles/autofs_client/tasks/main.yml | 98 +++++++++++++++++++----------- roles/mqtt-srv/tasks/main.yml | 8 +++ roles/omv_backup/tasks/main.yml | 10 ++- roles/wake_on_lan/tasks/main.yml | 13 ++-- 5 files changed, 94 insertions(+), 43 deletions(-) diff --git a/hosts_roles.yml b/hosts_roles.yml index 7bd9aa6..c545890 100755 --- a/hosts_roles.yml +++ b/hosts_roles.yml @@ -163,3 +163,11 @@ datacenter: # ansible_user: admin # ansible_pass: l4c1!j4yd33?Du5lo1 ansible_python_interpreter: /share/ZFS530_DATA/.qpkg/QPython312/bin/python3 + desktops: + hosts: + morefine.home.lan: + vars: + ansible_python_interpreter: /usr/bin/python3 + ansible_ssh_user: jd + ansible_become_password: q + ansible_ssh_private_key_file: ssh_key.pem diff --git a/roles/autofs_client/tasks/main.yml b/roles/autofs_client/tasks/main.yml index 7b56f1f..678ef78 100755 --- a/roles/autofs_client/tasks/main.yml +++ b/roles/autofs_client/tasks/main.yml @@ -29,47 +29,75 @@ mode: '0600' owner: root group: root + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-movies" + # content: | + # movies -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/movies + # mode: '0600' + # owner: root + # group: root + - name: Creating a file with content ansible.builtin.copy: dest: "/etc/auto.nas-movies" content: | - movies -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/movies + movies --fstype=nfs,rw nas.home.lan:/movies mode: '0600' owner: root group: root - - name: Creating a file with content - ansible.builtin.copy: - dest: "/etc/auto.nas-music" - content: | - music -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/music - mode: '0600' - owner: root - group: root + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-music" + # content: | + # music -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/music + # mode: '0600' + # owner: root + # group: root - - name: Creating a file with content - ansible.builtin.copy: - dest: "/etc/auto.nas-shows" - content: | - shows -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/shows - mode: '0600' - owner: root - group: root + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-music" + # content: | + # music --fstype=nfs,rw ://nas.home.lan/music + # mode: '0600' + # owner: root + # group: root + + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-shows" + # content: | + # shows -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/shows + # mode: '0600' + # owner: root + # group: root + + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas" + # content: | + # nas-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Data + # nas-docker-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/docker_data + # nas-photo -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Photo + # nas-public -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Public + # nas-install -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/install + # nas-downloads -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/downloads + # nas-games -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/qda_2 + # mode: '0600' + # owner: root + # group: root - name: Creating a file with content ansible.builtin.copy: dest: "/etc/auto.nas" content: | - nas-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Data - nas-docker-data -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/docker_data - nas-photo -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Photo - nas-public -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/Public - nas-install -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/install - nas-downloads -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/downloads - nas-games -fstype=cifs,credentials=/etc/auto.auth,dir_mode=0755,file_mode=0755,uid=jd,rw ://nas.home.lan/qda_2 + nas-data --fstype=nfs,rw nas.home.lan:/Data + qda_1 --fstype=nfs,rw nas.home.lan:/qda_1 mode: '0600' owner: root - group: root + group: root # - name: Reconfigure autofs Server # ansible.builtin.lineinfile: # path: /etc/auto.master @@ -77,21 +105,21 @@ # insertafter: '^/media/nas' # line: "/media/nas /etc/auto.nas --timeout 360 --ghost" - - name: Reconfigure autofs Server - ansible.builtin.lineinfile: - path: /etc/auto.master - regexp: "^/media/data/music/nas.*" - line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost + # - name: Reconfigure autofs Server + # ansible.builtin.lineinfile: + # path: /etc/auto.master + # regexp: "^/media/data/music/nas.*" + # line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost - name: Reconfigure autofs Server ansible.builtin.lineinfile: path: /etc/auto.master regexp: "^/media/data/movies/nas.*" line: /media/data/movies/nas /etc/auto.nas-movies --timeout 360 --ghost - - name: Reconfigure autofs Server - ansible.builtin.lineinfile: - path: /etc/auto.master - regexp: "^/media/data/shows/nas.*" - line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost + # - name: Reconfigure autofs Server + # ansible.builtin.lineinfile: + # path: /etc/auto.master + # regexp: "^/media/data/shows/nas.*" + # line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost - name: Reconfigure autofs Server diff --git a/roles/mqtt-srv/tasks/main.yml b/roles/mqtt-srv/tasks/main.yml index b01c6c3..162a65e 100755 --- a/roles/mqtt-srv/tasks/main.yml +++ b/roles/mqtt-srv/tasks/main.yml @@ -54,6 +54,14 @@ group: root remote_src: true when: inventory_hostname != 'nas.home.lan' + - name: Upload monitors script + ansible.builtin.copy: + src: "get_monitors.sh" + dest: /myapps/mqtt_srv/get_monitors.sh + mode: '0755' + owner: root + group: root + when: inventory_hostname == 'morefine.home.lan' - name: Upload service req ansible.builtin.copy: src: "{{ dest_folder }}/requirements.txt" diff --git a/roles/omv_backup/tasks/main.yml b/roles/omv_backup/tasks/main.yml index ab16f74..83883d5 100755 --- a/roles/omv_backup/tasks/main.yml +++ b/roles/omv_backup/tasks/main.yml @@ -59,7 +59,15 @@ owner: root group: root when: inventory_hostname != 'nas.home.lan' - + - name: Upload docker_backups.py + ansible.builtin.copy: + src: "{{ dest_folder }}/docker_backups.py" + dest: /myapps/docker_backups.py + remote_src: true + mode: '0755' + owner: root + group: root + when: inventory_hostname == 'm-server.home.lan' - name: Install venv ansible.builtin.apt: name: diff --git a/roles/wake_on_lan/tasks/main.yml b/roles/wake_on_lan/tasks/main.yml index dc96b11..e6c9422 100755 --- a/roles/wake_on_lan/tasks/main.yml +++ b/roles/wake_on_lan/tasks/main.yml @@ -10,23 +10,20 @@ ansible.builtin.set_fact: active_adapter: '{{ item }}' loop: '{{ ansible_facts.interfaces }}' - when: 'item.startswith("eno")' -- name: Display all interfaces name - ansible.builtin.debug: - msg: "{{ ansible_default_ipv4.interface }}" + when: '(item.startswith("eno") or item.startswith("enp")) and not item.endswith("avahi")' - name: Creating config become: true ansible.builtin.copy: - dest: "/etc/systemd/system/wol.service" + dest: "/etc/systemd/system/wol@.service" content: | [Unit] Description=Enable Wake On Lan [Service] Type=oneshot - ExecStart = /usr/sbin/ethtool --change {{ ansible_default_ipv4.interface }} wol g + ExecStart = /usr/sbin/ethtool --change %i wol g [Install] WantedBy=basic.target @@ -34,7 +31,9 @@ mode: '0744' - name: Restart service wol, in all cases ansible.builtin.service: - name: wol + name: wol@{{ item }} state: restarted enabled: true become: true + loop: '{{ ansible_facts.interfaces }}' + when: '(item.startswith("eno") or item.startswith("enp")) and not item.endswith("avahi")' From 07bc2d0b716cb53ad0cf8717c460f7c65e3d969d Mon Sep 17 00:00:00 2001 From: jaydee Date: Tue, 21 Oct 2025 14:28:37 +0200 Subject: [PATCH 2/7] added photo nfs --- roles/autofs_client/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/autofs_client/tasks/main.yml b/roles/autofs_client/tasks/main.yml index 678ef78..fb143de 100755 --- a/roles/autofs_client/tasks/main.yml +++ b/roles/autofs_client/tasks/main.yml @@ -95,6 +95,7 @@ content: | nas-data --fstype=nfs,rw nas.home.lan:/Data qda_1 --fstype=nfs,rw nas.home.lan:/qda_1 + nas-photo --fstype=nfs,rw nas.home.lan:/Photo mode: '0600' owner: root group: root From f59fb2bd8baa65ae0ae97114fcae7cd773b6ed4e Mon Sep 17 00:00:00 2001 From: jaydee Date: Tue, 21 Oct 2025 20:02:34 +0200 Subject: [PATCH 3/7] lala --- roles/autofs_client/tasks/main.yml | 43 +++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/roles/autofs_client/tasks/main.yml b/roles/autofs_client/tasks/main.yml index fb143de..96b825a 100755 --- a/roles/autofs_client/tasks/main.yml +++ b/roles/autofs_client/tasks/main.yml @@ -46,7 +46,22 @@ mode: '0600' owner: root group: root - + - name: Creating a file with content + ansible.builtin.copy: + dest: "/etc/auto.nas-music" + content: | + music --fstype=nfs,rw nas.home.lan:/music + mode: '0600' + owner: root + group: root + - name: Creating a file with content + ansible.builtin.copy: + dest: "/etc/auto.nas-shows" + content: | + shows --fstype=nfs,rw nas.home.lan:/shows + mode: '0600' + owner: root + group: root # - name: Creating a file with content # ansible.builtin.copy: # dest: "/etc/auto.nas-music" @@ -93,9 +108,12 @@ ansible.builtin.copy: dest: "/etc/auto.nas" content: | + nas-docker-data --fstype=nfs,rw nas.home.lan:/docker_data nas-data --fstype=nfs,rw nas.home.lan:/Data - qda_1 --fstype=nfs,rw nas.home.lan:/qda_1 + nas-qda_1 --fstype=nfs,rw nas.home.lan:/qda_1 nas-photo --fstype=nfs,rw nas.home.lan:/Photo + nas-install --fstype=nfs,rw nas.home.lan:/install + nas-games --fstype=nfs,rw nas.home.lan:/games mode: '0600' owner: root group: root @@ -106,21 +124,22 @@ # insertafter: '^/media/nas' # line: "/media/nas /etc/auto.nas --timeout 360 --ghost" - # - name: Reconfigure autofs Server - # ansible.builtin.lineinfile: - # path: /etc/auto.master - # regexp: "^/media/data/music/nas.*" - # line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost + - name: Reconfigure autofs Server + ansible.builtin.lineinfile: + path: /etc/auto.master + regexp: "^/media/data/music/nas.*" + line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost - name: Reconfigure autofs Server ansible.builtin.lineinfile: path: /etc/auto.master regexp: "^/media/data/movies/nas.*" line: /media/data/movies/nas /etc/auto.nas-movies --timeout 360 --ghost - # - name: Reconfigure autofs Server - # ansible.builtin.lineinfile: - # path: /etc/auto.master - # regexp: "^/media/data/shows/nas.*" - # line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost + + - name: Reconfigure autofs Server + ansible.builtin.lineinfile: + path: /etc/auto.master + regexp: "^/media/data/shows/nas.*" + line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost - name: Reconfigure autofs Server From 65c919256369be5efba689a707035bf4038f4ebe Mon Sep 17 00:00:00 2001 From: jaydee Date: Tue, 21 Oct 2025 20:05:08 +0200 Subject: [PATCH 4/7] klal --- roles/mqtt-srv/files/get_monitors.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 roles/mqtt-srv/files/get_monitors.sh diff --git a/roles/mqtt-srv/files/get_monitors.sh b/roles/mqtt-srv/files/get_monitors.sh new file mode 100644 index 0000000..5d4958c --- /dev/null +++ b/roles/mqtt-srv/files/get_monitors.sh @@ -0,0 +1,24 @@ +#!/bin/bash +rm /tmp/monitors.txt +while read -r output hex conn; do + [[ -z "$conn" ]] && conn=${output%%-*} + echo "$output;$(xxd -r -p <<< "$hex")">>/tmp/monitors.txt + +done < <(xrandr --prop | awk ' + !/^[ \t]/ { + if (output && hex) print output, hex, conn + output=$1 + hex="" + } + /ConnectorType:/ {conn=$2} + /[:.]/ && h { + sub(/.*000000fc00/, "", hex) + hex = substr(hex, 0, 26) "0a" + sub(/0a.*/, "", hex) + h=0 + } + h {sub(/[ \t]+/, ""); hex = hex $0} + /EDID.*:/ {h=1} + END {if (output && hex) print output, hex, conn} + ' | sort +) From 1b48c81066a172177f960a91bff9c0488698d3a6 Mon Sep 17 00:00:00 2001 From: jaydee Date: Sun, 26 Oct 2025 02:20:02 +0100 Subject: [PATCH 5/7] build --- all.yml | 3 + roles/autofs_client/tasks/main.yml | 137 +++++++++++++++++++---------- 2 files changed, 92 insertions(+), 48 deletions(-) diff --git a/all.yml b/all.yml index ff2bd27..5cd481e 100755 --- a/all.yml +++ b/all.yml @@ -71,3 +71,6 @@ - name: watcher role: watcher tags: watcher + - name: nfs_server + role: nfs_server + tags: nfs_server diff --git a/roles/autofs_client/tasks/main.yml b/roles/autofs_client/tasks/main.yml index 96b825a..894fdd8 100755 --- a/roles/autofs_client/tasks/main.yml +++ b/roles/autofs_client/tasks/main.yml @@ -24,11 +24,33 @@ ansible.builtin.copy: dest: "/etc/auto.m-server" content: | - docker_data -fstype=nfs m-server.home.lan:/share/docker_data - downloads -fstype=nfs m-server.home.lan:/media/data/downloads + docker_data -fstype=nfs m-server.home.lan:/docker_data + downloads -fstype=nfs m-server.home.lan:/downloads mode: '0600' owner: root group: root + when: inventory_hostname != 'm-server.home.lan' + + - name: Creating a file with content + ansible.builtin.copy: + dest: "/etc/auto.rack" + content: | + docker_data -fstype=nfs rack.home.lan:/docker_data + mode: '0600' + owner: root + group: root + when: inventory_hostname != 'rack.home.lan' + + - name: Creating a file with content + ansible.builtin.copy: + dest: "/etc/auto.rpi5" + content: | + docker_data -fstype=nfs rpi5.home.lan:/docker_data + mode: '0600' + owner: root + group: root + when: inventory_hostname != 'rpi5.home.lan' + # - name: Creating a file with content # ansible.builtin.copy: # dest: "/etc/auto.nas-movies" @@ -38,30 +60,30 @@ # owner: root # group: root - - name: Creating a file with content - ansible.builtin.copy: - dest: "/etc/auto.nas-movies" - content: | - movies --fstype=nfs,rw nas.home.lan:/movies - mode: '0600' - owner: root - group: root - - name: Creating a file with content - ansible.builtin.copy: - dest: "/etc/auto.nas-music" - content: | - music --fstype=nfs,rw nas.home.lan:/music - mode: '0600' - owner: root - group: root - - name: Creating a file with content - ansible.builtin.copy: - dest: "/etc/auto.nas-shows" - content: | - shows --fstype=nfs,rw nas.home.lan:/shows - mode: '0600' - owner: root - group: root + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-movies" + # content: | + # movies --fstype=nfs,rw nas.home.lan:/movies + # mode: '0600' + # owner: root + # group: root + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-music" + # content: | + # music --fstype=nfs,rw nas.home.lan:/music + # mode: '0600' + # owner: root + # group: root + # - name: Creating a file with content + # ansible.builtin.copy: + # dest: "/etc/auto.nas-shows" + # content: | + # shows --fstype=nfs,rw nas.home.lan:/shows + # mode: '0600' + # owner: root + # group: root # - name: Creating a file with content # ansible.builtin.copy: # dest: "/etc/auto.nas-music" @@ -108,15 +130,19 @@ ansible.builtin.copy: dest: "/etc/auto.nas" content: | - nas-docker-data --fstype=nfs,rw nas.home.lan:/docker_data - nas-data --fstype=nfs,rw nas.home.lan:/Data - nas-qda_1 --fstype=nfs,rw nas.home.lan:/qda_1 - nas-photo --fstype=nfs,rw nas.home.lan:/Photo - nas-install --fstype=nfs,rw nas.home.lan:/install - nas-games --fstype=nfs,rw nas.home.lan:/games + docker-data --fstype=nfs,rw nas.home.lan:/docker_data + data --fstype=nfs,rw nas.home.lan:/Data + qda_1 --fstype=nfs,rw nas.home.lan:/qda_1 + photo --fstype=nfs,rw nas.home.lan:/Photo + install --fstype=nfs,rw nas.home.lan:/install + games --fstype=nfs,rw nas.home.lan:/games + movies --fstype=nfs,rw nas.home.lan:/movies + music --fstype=nfs,rw nas.home.lan:/music + shows --fstype=nfs,rw nas.home.lan:/shows mode: '0600' owner: root - group: root + group: root + when: inventory_hostname != 'nas.home.lan' # - name: Reconfigure autofs Server # ansible.builtin.lineinfile: # path: /etc/auto.master @@ -124,33 +150,48 @@ # insertafter: '^/media/nas' # line: "/media/nas /etc/auto.nas --timeout 360 --ghost" - - name: Reconfigure autofs Server - ansible.builtin.lineinfile: - path: /etc/auto.master - regexp: "^/media/data/music/nas.*" - line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost - - name: Reconfigure autofs Server - ansible.builtin.lineinfile: - path: /etc/auto.master - regexp: "^/media/data/movies/nas.*" - line: /media/data/movies/nas /etc/auto.nas-movies --timeout 360 --ghost + # - name: Reconfigure autofs Server + # ansible.builtin.lineinfile: + # path: /etc/auto.master + # regexp: "^/media/data/music/nas.*" + # line: /media/data/music/nas /etc/auto.nas-music --timeout 360 --ghost + # - name: Reconfigure autofs Server + # ansible.builtin.lineinfile: + # path: /etc/auto.master + # regexp: "^/media/data/movies/nas.*" + # line: /media/data/movies/nas /etc/auto.nas-movies --timeout 360 --ghost - - name: Reconfigure autofs Server - ansible.builtin.lineinfile: - path: /etc/auto.master - regexp: "^/media/data/shows/nas.*" - line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost + # - name: Reconfigure autofs Server + # ansible.builtin.lineinfile: + # path: /etc/auto.master + # regexp: "^/media/data/shows/nas.*" + # line: /media/data/shows/nas /etc/auto.nas-shows --timeout 360 --ghost - name: Reconfigure autofs Server ansible.builtin.lineinfile: path: /etc/auto.master + regexp: "^/media/nas.*" line: /media/nas /etc/auto.nas --timeout 360 --ghost + - name: Reconfigure autofs Server ansible.builtin.lineinfile: path: /etc/auto.master + regexp: "^/media/m-server.*" line: /media/m-server /etc/auto.m-server --timeout 360 --ghost + - name: Reconfigure autofs Server + ansible.builtin.lineinfile: + path: /etc/auto.master + regexp: "^/media/rack.*" + line: /media/rack /etc/auto.rack --timeout 360 --ghost + + - name: Reconfigure autofs Server + ansible.builtin.lineinfile: + path: /etc/auto.master + regexp: "^/media/rpi5.*" + line: /media/rpi5 /etc/auto.rpi5 --timeout 360 --ghost + - name: Restart docker service ansible.builtin.service: name: autofs From d49c209199a11aaaf7116dce4b48bd7b38133abc Mon Sep 17 00:00:00 2001 From: jaydee Date: Sun, 26 Oct 2025 02:20:22 +0100 Subject: [PATCH 6/7] build --- roles/nfs_server/tasks/main.yml | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 roles/nfs_server/tasks/main.yml diff --git a/roles/nfs_server/tasks/main.yml b/roles/nfs_server/tasks/main.yml new file mode 100755 index 0000000..a18fdbe --- /dev/null +++ b/roles/nfs_server/tasks/main.yml @@ -0,0 +1,63 @@ +- name: Setup autofs + become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}" + block: + - name: Include vault + ansible.builtin.include_vars: + file: jaydee.yml + + - name: Install nfs-server + ansible.builtin.apt: + name: + - nfs-kernel-server + state: present + + - name: Ensure nfsd thread count is set + community.general.ini_file: + path: /etc/nfs.conf + section: nfsd + option: threads + value: "1" + no_extra_spaces: true + mode: '0644' + - name: Mount and bind a volume + ansible.posix.mount: + path: /srv/nfs/downloads + src: /media/m-server/downloads + opts: bind + state: mounted + fstype: none + when: inventory_hostname == 'm-server.home.lan' + + - name: Mount and bind a volume + ansible.posix.mount: + path: /srv/nfs/docker_data + src: /share/docker_data + opts: bind + state: mounted + fstype: none + + + - name: Reconfigure nfs exports + ansible.builtin.lineinfile: + path: /etc/exports + regexp: "^/srv/nfs .*" + line: "/srv/nfs 192.168.77.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)" + + + - name: Reconfigure nfs exports + ansible.builtin.lineinfile: + path: /etc/exports + regexp: "^/srv/nfs/docker_data .*" + line: "/srv/nfs/docker_data 192.168.77.0/24(rw,sync,no_subtree_check)" + + - name: Reconfigure nfs exports + ansible.builtin.lineinfile: + path: /etc/exports + regexp: "^/srv/nfs/downloads .*" + line: "/srv/nfs/downloads 192.168.77.0/24(rw,sync,no_subtree_check)" + when: inventory_hostname == 'm-server.home.lan' + + - name: Restart nfs service + ansible.builtin.service: + name: nfs-server + state: restarted From 09d52414814739fe7f69fbc52a3f3bc4423f6b9a Mon Sep 17 00:00:00 2001 From: jaydee Date: Wed, 29 Oct 2025 10:21:34 +0100 Subject: [PATCH 7/7] build --- roles/nfs_server/tasks/main.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/roles/nfs_server/tasks/main.yml b/roles/nfs_server/tasks/main.yml index a18fdbe..f02f44d 100755 --- a/roles/nfs_server/tasks/main.yml +++ b/roles/nfs_server/tasks/main.yml @@ -35,7 +35,18 @@ opts: bind state: mounted fstype: none - + - name: Reconfigure nfs fstab + ansible.builtin.lineinfile: + path: /etc/fstab + regexp: "^/media/m-server/downloads .*" + line: "/media/m-server/downloads /srv/nfs/downloads none bind 0 0" + when: inventory_hostname == 'm-server.home.lan' + - name: Reconfigure nfs exports + ansible.builtin.lineinfile: + path: /etc/fstab + regexp: "^/share/docker_data .*" + line: "/share/docker_data /srv/nfs/docker_data none bind 0 0" + when: inventory_hostname == 'm-server.home.lan' - name: Reconfigure nfs exports ansible.builtin.lineinfile: @@ -43,7 +54,6 @@ regexp: "^/srv/nfs .*" line: "/srv/nfs 192.168.77.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)" - - name: Reconfigure nfs exports ansible.builtin.lineinfile: path: /etc/exports