From Fedora Project Wiki

< Changes

Revision as of 16:27, 15 October 2018 by Steved (talk | contribs)

Deprecating /etc/sysconfig/nfs

Summary

Deprecate /etc/sysconfig/nfs and only use /etc/nfs.conf to configure NFS daemons.

Owner

  • Name: Steve Dickson
  • Email: steved@redhat.com
  • Release notes owner:


Current status

  • Targeted release: Fedora 30
  • Last updated: 2018-10-15
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

Since the beginning /etc/sysconfig/nfs has been used to configure the NFS server daemons by supply command line arguments to the daemons or commands via SysVinit scripts.

Then systemd(1) came along and the idea of daemons self-configuration was started. Meaning daemons and commands would get their configurations from a file, not the command line like with SysVinit scripts.

Back in late 2016, Neil Brown from SuSe, implemented this changed. He built into each daemon the ability to read from one central file, /etc/nfs.conf. See nfs.conf(5) for details.

After this work made it upstream, I a wrote patch that added back the ability to use /etc/sysconfig/nfs to maintain backwards compatibility which has lasted for the last few Fedora releases.

I think at this point, the timing is right to introduce this single file configuration to Fedora 30.

Benefit to Fedora

  • Having a single file configuration will help IT automation systems like Ansible configure NFS servers.
  • This change also simplifies the systemd scrips.
  • Having two ways of configuring NFS is not desirable. The only reason there has been no problems is because nobody know about /etc/nfs.conf
  • There is a new command, nfsconf(8), that checks the correctness of /etc/nfs.conf

Scope

  • Proposal owners: Steve Dickson <steved@redhat.com>
  • Other developers: Justin Mitchell <jumitche@redhat.com>
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

In BZ1619270 a python script that will convert a sysconfig/nfs config into nfs.conf config. There are a couple thoughts on how to use it.

On clean installs, when sysconfig/nfs does not exist, sysconfig/nfs wil still be installed with directions to use nfs.conf to do the configuration.

When sysconfig/nfs does exist, the configuration will not be overwritten, but the systemd scripts will not use the file to configure NFS.

The two thoughts on how to use python script:

  1. Have the upgrade run the script and maybe throw out a message that the configuration has now been moved to nfs.conf
  2. Throw a message indicating the NFS configuration has changed and then have the admin run the script

The first thought is probably the cleanest but changing configurations behind admin's back is not very nice... I am very open on how to use this script.

How To Test

With the new nfsconf(8) command, the nfs.conf can be tested for correctness, other than that, we should do the same testing as we do today

User Experience

After the initial shock, I think users will embrace the new configuration. Being able to configure NFS via IT automation systems (aka Ansible) is a step in the right direction. Having a command to check the correctness of the configuration will be welcome.

Dependencies

There are no dependencies that I know of.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

There are two man pages, nfs.conf(5) and nfsconf(8).

Release Notes

The new way of configuring NFS should be release noted.