NFS servers

NFS is the standard way to use network file systems in a Unix environment. As such, UGCS employs several. We recently gained the ability to quickly configure and deploy NFS servers using cfengine. Future improvements involve using Kerberos to authenticate and secure via NFS4.

=Cfengine= All of the NFS servers will be put into a cfengine class that overwrites the /etc/exports file when cfrun is activated. This class will also restart nfs-kernel-server to take the new settings into effect. Then, each group of servers will have an separate class that concatenates the appropriate exports files to this blank file.

Exports
Each individual set of exports is self-contained, and ideally configured for an individual purpose. If a server pulls double duty, it should be entered into multiple classes and thus have multiple concatenated exports files.

Keytab exports
At the moment, the keytabs are generated separately (via configurator). This will need to be automatically generated eventually.

Other details
Currently, the individual settings on each server are not set via cfengine. Things such as local permissions, sticky bits, quotas, will be defined locally.

Relevant files

 * /afs/.../cfengine/global/inputs/cfagent.conf - contains class definitions
 * /afs/.../cfengine/global/inputs/nfs.conf - NFS server and mount commands
 * /afs/.../cfengine/hosts/nfs/ - export definitions imported by cfengine
 * /afs/.../configurator/generate_nfs_exports.py - creates the keytab export from the UGCSComputer pickle

=Current NFS settings=

NFS servers

 * Apollo - common keys for shellservers (/ug/nfs/keys)
 * Apollo - common opt for shellservers (/opt)
 * Apollo - large shared filespace for groups (/mnt/shared)
 * Demeter - cfengine root (not configured by cfengine) (/ug/nfs/cfengine)