From: Alice Mitchell <ajmitchell@redhat.com>
To: Linux NFS Mailing list <linux-nfs@vger.kernel.org>
Cc: Steve Dickson <steved@redhat.com>
Subject: [PATCH 4/4] nfs-utils: Update nfs4_unique_id module parameter from the nfs.conf value
Date: Fri, 10 Jul 2020 17:44:04 +0100 [thread overview]
Message-ID: <115d8b45e84f3cecc9f5623e39f5078315d3ebbd.camel@redhat.com> (raw)
In-Reply-To: <5a84777afb9ed8c866841471a1a7e3c9b295604d.camel@redhat.com>
systemd service to grab the config value and feed it to the kernel module
---
nfs.conf | 1 +
systemd/Makefile.am | 3 +++
systemd/nfs-conf-export.sh | 28 ++++++++++++++++++++++++++++
systemd/nfs-config.service.in | 17 +++++++++++++++++
4 files changed, 49 insertions(+)
create mode 100755 systemd/nfs-conf-export.sh
create mode 100644 systemd/nfs-config.service.in
diff --git a/nfs.conf b/nfs.conf
index 186a5b19..8bb41227 100644
--- a/nfs.conf
+++ b/nfs.conf
@@ -4,6 +4,7 @@
#
[general]
# pipefs-directory=/var/lib/nfs/rpc_pipefs
+# nfs4_unique_id = ${machine-id}
#
[exports]
# rootdir=/export
diff --git a/systemd/Makefile.am b/systemd/Makefile.am
index 75cdd9f5..51acdc3f 100644
--- a/systemd/Makefile.am
+++ b/systemd/Makefile.am
@@ -9,6 +9,7 @@ unit_files = \
nfs-mountd.service \
nfs-server.service \
nfs-utils.service \
+ nfs-config.service \
rpc-statd-notify.service \
rpc-statd.service \
\
@@ -69,4 +70,6 @@ genexec_PROGRAMS = nfs-server-generator rpc-pipefs-generator
install-data-hook: $(unit_files)
mkdir -p $(DESTDIR)/$(unitdir)
cp $(unit_files) $(DESTDIR)/$(unitdir)
+ mkdir -p $(DESTDIR)/$(libexecdir)/nfs-utils
+ install nfs-conf-export.sh $(DESTDIR)/$(libexecdir)/nfs-utils/
endif
diff --git a/systemd/nfs-conf-export.sh b/systemd/nfs-conf-export.sh
new file mode 100755
index 00000000..486e8df9
--- /dev/null
+++ b/systemd/nfs-conf-export.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# This script pulls values out of /etc/nfs.conf and configures
+# the appropriate kernel modules which cannot read it directly
+
+NFSMOD=/sys/module/nfs/parameters/nfs4_unique_id
+NFSPROBE=/etc/modprobe.d/nfs.conf
+
+# Now read the values from nfs.conf
+MACHINEID=`nfsconf --get general nfs4_unique_id`
+if [ $? -ne 0 ] || [ "$MACHINEID" == "" ]
+then
+# No config vaue found, assume blank
+MACHINEID=""
+fi
+
+# Kernel module is already loaded, update the live one
+if [ -e $NFSMOD ]; then
+echo -n "$MACHINEID" >> $NFSMOD
+fi
+
+# Rewrite the modprobe file for next reboot
+echo "# This file is overwritten by systemd nfs-config.service" > $NFSPROBE
+echo "# with values taken from /etc/nfs.conf" >> $NFSPROBE
+echo "# Do not hand modify" >> $NFSPROBE
+echo "options nfs nfs4_unique_id=\"$MACHINEID\"" >> $NFSPROBE
+
+echo "Set to: $MACHINEID"
diff --git a/systemd/nfs-config.service.in b/systemd/nfs-config.service.in
new file mode 100644
index 00000000..c5ef1024
--- /dev/null
+++ b/systemd/nfs-config.service.in
@@ -0,0 +1,17 @@
+[Unit]
+Description=Preprocess NFS configuration
+PartOf=nfs-client.target
+After=nfs-client.target
+DefaultDependencies=no
+
+[Service]
+Type=oneshot
+# This service needs to run any time any nfs service
+# is started, so changes to local config files get
+# incorporated. Having "RemainAfterExit=no" (the default)
+# ensures this happens.
+RemainAfterExit=no
+ExecStart=@_libexecdir@/nfs-utils/nfs-conf-export.sh
+
+[Install]
+WantedBy=nfs-client.target
--
2.18.1
next prev parent reply other threads:[~2020-07-10 16:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-10 16:37 [PATCH 0/4] nfs-utils: nfs.conf features to enable use of machine-id as nfs4_unique_id Alice Mitchell
2020-07-10 16:39 ` [PATCH 1/4] nfs-utils: Factor out common structure cleanup calls Alice Mitchell
2020-07-10 16:40 ` [PATCH 2/4] nfs-utils: Enable the retrieval of raw config settings without expansion Alice Mitchell
2020-07-10 16:42 ` [PATCH 3/4] nfs-utils: Add support for further ${variable} expansions in nfs.conf Alice Mitchell
2020-07-15 17:42 ` Steve Dickson
2020-07-10 16:44 ` Alice Mitchell [this message]
2020-07-15 17:44 ` [PATCH 4/4] nfs-utils: Update nfs4_unique_id module parameter from the nfs.conf value Steve Dickson
2020-07-16 15:52 ` Patrick Goetz
2020-07-17 13:40 ` Steve Dickson
2020-07-15 18:02 ` [PATCH 0/4] nfs-utils: nfs.conf features to enable use of machine-id as nfs4_unique_id Steve Dickson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=115d8b45e84f3cecc9f5623e39f5078315d3ebbd.camel@redhat.com \
--to=ajmitchell@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=steved@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).