bundles/nfs-server: add avahi config

This commit is contained in:
Franzi 2025-05-06 20:57:41 +02:00
parent 2b0e559f6c
commit ae07976439
Signed by: kunsi
GPG key ID: 12E3D2136B818350
4 changed files with 45 additions and 20 deletions

View file

@ -0,0 +1,10 @@
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">NFS ${path} on %h</name>
<service>
<type>_nfs._tcp</type>
<port>2049</port>
<txt-record>path=${path}</txt-record>
</service>
</service-group>

View file

@ -1,4 +1,4 @@
% for path, shares in sorted(node.metadata['nfs-server']['shares'].items()): % for path, shares in sorted(node.metadata.get('nfs-server/shares', {}).items()):
% for share_target, share_options in sorted(shares.items()): % for share_target, share_options in sorted(shares.items()):
% for ip_list in repo.libs.tools.resolve_identifier(repo, share_target).values(): % for ip_list in repo.libs.tools.resolve_identifier(repo, share_target).values():
% for ip in sorted(ip_list): % for ip in sorted(ip_list):

View file

@ -1,25 +1,40 @@
files = { from re import sub
'/etc/exports': {
'content_type': 'mako', files['/etc/exports'] = {
'triggers': { 'content_type': 'mako',
'action:nfs_reload_shares', 'triggers': {
}, 'action:nfs_reload_shares',
},
'/etc/default/nfs-kernel-server': {
'source': 'etc-default',
'triggers': {
'svc_systemd:nfs-server:restart',
},
}, },
} }
actions = { files['/etc/default/nfs-kernel-server'] = {
'nfs_reload_shares': { 'source': 'etc-default',
'command': 'exportfs -a', 'triggers': {
'triggered': True, 'svc_systemd:nfs-server:restart',
}, },
} }
svc_systemd = { actions['nfs_reload_shares'] = {
'nfs-server': {}, 'command': 'exportfs -a',
'triggered': True,
} }
svc_systemd['nfs-server'] = {}
if node.has_bundle('avahi-daemon'):
for path, shares in node.metadata.get('nfs-server/shares', {}).items():
create_avahi_file = False
for share_target, share_options in shares.items():
if ',insecure,' in f',{share_options},':
create_avahi_file = True
if create_avahi_file:
share_name_normalized = sub('[^a-z0-9-_]+', '_', path)
files[f'/etc/avahi/services/nfs{share_name_normalized}.service'] = {
'source': 'avahi.service',
'content_type': 'mako',
'context': {
'path': path,
},
}

View file

@ -141,7 +141,7 @@ nodes['home.nas'] = {
'home.downloadhelper': 'rw,all_squash,anonuid=65534,anongid=1012,no_subtree_check', 'home.downloadhelper': 'rw,all_squash,anonuid=65534,anongid=1012,no_subtree_check',
}, },
'/storage/nas': { '/storage/nas': {
'172.19.138.0/24': 'ro,all_squash,anonuid=65534,anongid=65534,no_subtree_check', '172.19.138.0/24': 'ro,all_squash,anonuid=65534,anongid=65534,no_subtree_check,insecure',
}, },
'/srv/paperless': { '/srv/paperless': {
'home.paperless': 'rw,all_squash,anonuid=65534,anongid=65534,no_subtree_check', 'home.paperless': 'rw,all_squash,anonuid=65534,anongid=65534,no_subtree_check',