sábado, 8 de junio de 2019

Configurando el servicio autofs

Recientemente he tenido que revisar unos sistemas en los que se emplea automount. Mientras los revisaba me he dado cuenta que hacía demasiado tiempo que no me pegaba con ello, así que aquí va un pequeño recordatorio de cómo funciona y como se configura el servicio automount.

El servicio automount nos permite montar de manera automática recursos compartidos por NFS en cualquier cliente Linux. El objetivo de este servicio es que se realice la petición de montaje al servidor, y posterior montaje del recurso, en el momento en el que se intente acceder al mismo por primera vez.

El nombre del paquete que debemos instalar para disponer de este servicio es autofs, el cual proporciona, además de los binarios necesarios, los siguientes fucheros de configuración:

Ficheros de configuración de automount.
De forma rápida, el fichero autofs.conf contiene todas las opciones de configuración, siendo la más importante la definición del fichero denominado mapa maestro. Por defecto, el fichero que contiene el mapa maestro de autofs es siempre auto.master, que indica que directorios están controlados por el servicio autofs y en los que se montarán los recursos compartidos por servidores remotos. Básicamente podemos decir que es un fichero en el que, cada entrada de directorio apunta al fichero correspondiente con la configuración necesaria.

Siguiendo la configuración por defecto, en la que se configura el directorio /misc mediante el fichero auto.misc, podemos establecer una configuración simple como la siguiente:

Configuración básica auto.misc.
Con esta configuración, lo que le estamos diciendo al servicio autofs, es que cada vez que se realice un acceso a las rutas /misc/dir1 o /misc/dir2, debe montar por NFS los directorios correspondientes compartidos por el servidor NFS indicado.

Una de las características interesantes, y cuando se nos olvida como funciona autofs también un poco desconcertante, es que autofs se encargará de crear los directorios necesarios en caso de que no existan.

Siguiendo con el ejemplo que nos ocupa, el directorio /misc que estamos configurando no existe por defecto en el sistema de archivos:

El directorio misc no existe por defecto.
Al arrancar el servicio veremos que el directorio /misc aparece, ya que autofs lo creará para empezar a realizar el montaje de los directorios remotos en cuanto se realice cualquier acceso a los mismos:

El directorio /misc es creado por autofs cuando arranca.
Podemos comprobar dos puntos importantes:
  • Si no se realiza ningún intento de acceso a las rutas que es necesario montar, el directorio /misc está vacio.
  • No podemos crear ningún fichero o subdirectorio dentro de /misc aunque seamos el usuario root.

En cuanto se realice un acceso a uno de los subdirectorios que hemos configurado, autofs lo creará y montará el directorio compartido por NFS:

Montaje de directorios mediante autofs.
Por tanto, y en resumen, mediante automount podemos acceder a rutas remotas exportadas mediante NFS bajo demanda, una solución que en determinadas ocasiones puede ser de mucha utilidad.

Ah, pero espera, que a mi no me gusta el directorio /misc, ¿no puedo cambiarle el nombre? Por supuesto que si. Para esto solo tenemos que cambiar la definición del directorio en el fichero auto.master. Así, por ejemplo, si queremos que autofs monte los recursos remotos en el subdirectorio /DATA, lo que haremos será lo siguiente:

Configuración de fichero auto.master.
Y el contenido del fichero auto.data, será similar al siguiente:

Configuración del fichero de mapa auto.data.
Cómo vimos con la configuración para el directorio /misc, el directorio /DATA no aparecerá en nuestro sistema de archivos hasta que no arranquemos el servicio autofs y, una vez arrancado, este montará los subidrectorios correspondientes cuando se realice el primer acceso a los mismos.

El directorio DATA tras arrancar el servicio autofs.
Montaje de los subdirectorios bajo demanda.