Autofs

From Leo's Notes
Revision as of 19:12, 24 February 2017 by Leo (talk | contribs) (Text replacement - "<code>" to "{{code|")
This page was last edited on 24 February 2017, at 19:12.

{{code|autofs is the linux automounter. It's a daemon that automatically mounts filesystems as they are accessed on demand.

Configuration

The primary configuration file used by automount is {{code|/etc/auto.master which defines what mounts automount is responsible for.

#
# /etc/auto.master
#
+auto.master
/home   /etc/auto.home

In the example above, automount is responsible for mounting directories under /home and the configuration for it is under {{code|/etc/auto.home. The configuration under {{code|/etc/auto.home will define directories in {{code|/home and their corresponding mount locations.

#
# /etc/auto.home
#
leo    file1:/export/home/leo

Anyone going to {{code|/home/leo will cause automount to mount {{code|/home/leo from {{code|file1:/export/home/leo.

You may specify mount options by placing them before the mount location:

#
# /etc/auto.home
#
leo   -fstype=nfs4    file1:/export/home/leo

Dynamic Automount Rules

The automount configuration can be made as a script to make mounting more intelligent. automount will pass in the mounting point to your {{code|auto mount configuration.

For example, if home directories are stored on multiple file servers, we can make {{code|/home the mounting point for all users by doing something like so:

# cat /etc/auto.home
#!/bin/sh

# Automount will pass in the username as the first parameter since we are
# mounting /home/<username>
Username=$1

# The default fileserver is 'file1'
Server="file1"

# The path to the mount for this user
Path="/export/home/$Username"

# As a proof of concept, we can make a specific user use a different filesersver
# Eg: leo's home directory will be mounted from file2
if [ "$Username" = "leo" ] ; then
    Server="file2"
fi

# Echo out the configuration for automount
echo "-fstype=nfs4,sec=krb5,soft,rsize=8192,wsize=8192,rw   $Server:$Path"