8.4. autofs

Un inconvénient lié à l'utilisation de /etc/fstab fait que peu importe la fréquence à laquelle un utilisateur accède au système de fichiers NFS monté, le système doit dédier des ressources afin de garder le système de fichiers en place. Il ne s'agit pas d'un problème avec un ou deux montages, mais lorsque le système maintient les montages de nombreux systèmes à la fois, les performances générales du système peuvent être affectées. Une alternative à /etc/fstab consiste à utiliser l'utilitaire basé noyau automount. Automounter consiste en deux composants :
  • Un module de noyau qui implémente un système de fichiers, et
  • un démon de l'espace utilisateur qui effectue toutes les autres fonctions.
L'utilitaire automount peut monter et démonter des systèmes de fichiers NFS automatiquement (montage à la demande), et permet donc d'économiser des ressources système. Il peut être utilisé pour monter d'autres systèmes de fichiers, y compris AFS, SMBFS, CIFS, et des systèmes de fichiers locaux.

Important

Le paquet nfs-utils fait désormais partie des groupes « NFS file server » et « Network File System Client ». Ainsi, il n'est plus installé par défaut avec le groupe de base. Assurez-vous que nfs-utils soit installé sur le système avant de tenter un montage automatique sur un partage NFS.
autofs fait également partie du groupe « Network File System Client ».
autofs utilise /etc/auto.master (mappage principal) comme fichier de configuration principal. Ceci peut être changé afin d'utiliser une autre source réseau et un autre nom pris en charge en utilisant la configuration autofs (dans /etc/sysconfig/autofs) en conjonction avec le mécanisme NSS (« Name Service Switch »). Une instance du démon autofs version 4 était exécutée pour chaque point de montage configuré dans le mappage principal, lui permettant d'être exécutée manuellement à partir de la ligne de commande pour tout point de montage donné. Ceci n'est pas possible avec autofs version 5, car un seul démon est utilisé pour gérer tous les points de montage configurés dans le mappage principal. Ceci est effectué conformément aux conditions préalables des autres automounters (monteurs automatiques) standards du secteur. Les points de montage, noms d'hôte, répertoires exportés, et les options peuvent tous être spécifiés dans un ensemble de fichiers (ou autres sources réseau prises en charge) plutôt que de devoir les configurer manuellement pour chaque hôte.

8.4.1. Améliorations de autofs Version 5 par rapport à la Version 4

autofs version 5 offre les améliorations suivantes par rapport à la version 4 :
Prise en charge du mappage direct
Les mappages directs dans autofs offrent un mécanisme pour monter les systèmes de fichiers automatiquement sur des points arbitraires dans la hiérarchie du système de fichiers. Un mappage direct est indiqué par un point de montage /- dans le mappage principal. Les entrées dans un mappage direct contiennent un nom de chemin absolu comme clé (au lieu des noms de chemin relatifs utilisés pour les mappages indirects).
Prise en charge des montages et démontages « lazy »
Les entrées de mappage à multiples montages décrivent une hiérarchie de points de montage sous une clé unique. Un bon exemple de ceci est le mappage -hosts, couramment utilisé pour effectuer le montage automatique de tous les exports à partir d'un hôte sous /net/host en tant qu'entrée de mappage à multiples montages. Lors de l'utilisation du mappage -hosts, la commande ls de /net/host montera les montages de déclencheurs autofs de chaque export de l'hôte. Ceux-ci seront ensuite montés et expireront au fur et à mesure que l'on y accédera. Ceci peut grandement réduire le nombre de montages actifs nécessaires lors de l'accession à un serveur avec un grand nombre d'exports.
Prise en charge LDAP améliorée
Le fichier de configuration autofs (/etc/sysconfig/autofs) offre un mécanisme pour spécifier le schéma autofs implémenté par un site, éliminant ainsi le besoin de déterminer ceci intuitivement dans l'application. En outre, les liaisons authentifiées sur le serveur LDAP sont désormais prises en charge, en utilisant la plupart des mécanismes pris en charge par les implémentations de serveurs LDAP courantes. Un nouveau fichier de configuration a été ajouté pour cette prise en charge : /etc/autofs_ldap_auth.conf. La configuration par défaut explique bien les choses et utilise un format XML.
Utilisation correcte de la configuration « Name Service Switch » (nsswitch).
Le fichier de configuration du « Name Service Switch » existe pour fournir un moyen de déterminer d'où proviennent des données de configuration spécifiques. Le but de cette configuration est d'offrir aux administrateurs la flexibilité d'utiliser la base de données d'arrière-plan de leur choix, tout en conservant une interface logiciel uniforme pour accéder aux données. Malgré le fait qu'automounter version 4 gère de mieux en mieux la configuration NSS, celui-ci ne la gère pas totalement. En revanche, Autofs version 5 offre une implémentation totale.
Veuillez consulter man nsswitch.conf pour obtenir des informations supplémentaires sur la syntaxe prise en charge de ce fichier. Toutes les bases de données NSS ne sont pas des sources de mappage valides et l'analyseur rejettera celles qui ne sont pas valides. Les sources valides incluent les fichiers, yp, nis, nisplus, ldap, et hesiod.
Entrées multiples de mappage principal par point de montage autofs
Une chose fréquemment utilisée mais qui n'a pas encore été mentionnée est la gestion de multiples entrées de mappage principal pour le point de montage direct /-. Les clés de mappage de chaque entrée sont fusionnées et se comportent comme une seule carte.

Exemple 8.2. Entrées multiples de mappage principal par point de montage autofs

Ci-dessous figure un exemple des mappages de test connectathon pour les montages directs :
/- /tmp/auto_dcthon
/- /tmp/auto_test3_direct
/- /tmp/auto_test4_direct
 

8.4.2. Configuration autofs

/etc/auto.master est le fichier de configuration principal pour automounter, également appelé mappage principal, ce qui peut être modifié comme décrit dans la Section 8.4.1, « Améliorations de autofs Version 5 par rapport à la Version 4 ». Le mappage principal répertorie les points de montage du système contrôlé par autofs, ainsi que leurs fichiers de configuration ou sources réseau correspondants, également appelés cartes automount. Le format du mappage principal est comme suit :
mount-point map-name options
Les variables utilisées dans ce format sont les suivantes :
mount-point
Point de montage autofs, par exemple /home.
map-name
Nom d'une source de mappage qui contient une liste de points de montage, et l'emplacement du système de fichiers à partir duquel ces points de montage doivent être montés. La syntaxe d'une entrée de mappage est décrite ci-dessous.
options
Si fournies, celles-ci seront applicables à toutes les entrées du mappage donné, à condition qu'elles ne possèdent pas elles-même d'options spécifiées. Ce comportement est différent de celui d'autofs version 4, où les options étaient cumulatives. Cela a été modifié afin d'implémenter une compatibilité d'environnements mélangés.

Exemple 8.3. Fichier /etc/auto.master

Ci-dessous figure l'exemple d'une ligne du fichier /etc/auto.master (affiché en saisissant cat /etc/auto.master) :
/home /etc/auto.misc
Le format général des mappages est similaire à celui du mappage principal, cependant, les « options » apparaissent entre le point de montage et l'emplacement au lieu de se situer à la fin de l'entrée, comme c'est le cas dans le mappage principal :
mount-point   [options]   emplacement
Les variables utilisées dans ce format sont les suivantes :
mount-point
Référence au point de montage autofs. Il peut s'agir d'un nom de répertoire unique pour un montage indirect ou du chemin complet du point de montage pour les montages directs. Chaque clé d'entrée de mappage direct et indirect (mount-point above) peut être suivie d'une liste de répertoires décalés (les noms de sous-répertoires commencent tous par le caractère « / ») séparés par des virgules, en faisant ainsi une entrée à montages multiples.
options
Lorsqu'elles sont fournies, celles-ci servent d'options de montage pour les entrées de mappage ne spécifiant pas leurs propres options.
emplacement
Ceci fait référence à un emplacement de système de fichiers, tel qu'un chemin de système de fichiers local (précédé par le caractère d'échappement du format de mappage Sun « : » pour les noms de mappage commençant par une barre oblique « / »), un système de fichiers NFS, ou tout autre emplacement de système de fichiers valide.
Ci-dessous figure un exemple du contenu d'un fichier de mappage (par exemple, /etc/auto.misc) :
payroll -fstype=nfs personnel:/dev/hda3
sales -fstype=ext3 :/dev/hda4
La première colonne dans un fichier de mappage indique le point de montage autofs (sales et payroll provenant du serveur nommé personnel). La seconde colonne indique les options du montage autofs tandis que la troisième colonne indique la source du montage. Selon la configuration ci-dessus, les points de montage autofs seront nommés /home/payroll et /home/sales. L'option -fstype= est souvent omise et n'est généralement pas utile au bon fonctionnement de ce fichier.
Automounter créera les répertoires s'ils n'existent pas. S'ils existaient avant le démarrage d'Automounter, alors Automounter ne les supprimera pas lors de sa fermeture. Vous pouvez démarrer ou redémarrer le démon Automount en exécutant l'une des deux commandes suivantes :
  • service autofs start (si le démon automount est à l'arrêt)
  • service autofs restart
Lors de l'utilisation de la configuration ci-dessus, si un processus requiert l'accès à un répertoire autofs non monté, tel que /home/payroll/2006/July.sxc, le démon automount monte automatiquement le répertoire. Si un délai d'expiration a été spécifié et qu'aucun accès au répertoire n'est effectué pendant cette période, alors le répertoire sera automatiquement démonté.
Vous pouvez afficher le statut du démon automount en exécutant la commande suivante :
#  service autofs status

8.4.3. Remplacer ou augmenter les fichiers de configuration du site

Il peut être utile de remplacer les valeurs de site par défaut par un point de montage spécifique sur un système client. Par exemple, veuillez envisager les conditions suivantes :
  • Les mappages Automounter sont stockés dans le système d'informations réseau (ou NIS) et le fichier /etc/nsswitch.conf contient la directive suivante :
    automount:    files nis
  • Ci-dessous figure le contenu du fichier auto.master :
    +auto.master
  • Ci-dessous figure le contenu du fichier de mappage auto.master du NIS :
    /home auto.home
  • Ci-dessous figure le contenu du mappage auto.home du NIS :
    beth        fileserver.example.com:/export/home/beth
    joe        fileserver.example.com:/export/home/joe
    *       fileserver.example.com:/export/home/&
  • Le fichier de mappage /etc/auto.home n'existe pas.
Dans ces conditions, supposons que le système client doive remplacer le mappage NIS auto.home et monter les répertoires d'accueil du montage à partir d'un serveur différent. Dans ce cas, le client devra utiliser le mappage /etc/auto.master suivant :
/home ­/etc/auto.home
+auto.master
Le mappage /etc/auto.home contient l'entrée :
*    labserver.example.com:/export/home/&
Comme automounter ne traite que la première occurrence d'un point de montage, /home contiendra le contenu de /etc/auto.home au lieu de celui du mappage NIS auto.home.
Alternativement, pour augmenter le mappage global auto.home du site avec quelques entrées uniquement, veuillez créer un mappage du fichier /etc/auto.home et y inclure les nouvelles entrées. À la fin, veuillez inclure le mappage NIS auto.home. Ainsi, le mappage du fichier /etc/auto.home sera similaire à :
mydir someserver:/export/mydir
+auto.home
Avec le mappage NIS auto.home répertorié ci-dessus, ls /home retournera :
beth joe mydir
Ce dernier exemple fonctionne comme prévu car autofs n'inclut pas le contenu d'un mappage de fichier du même nom que celui qu'il lit. Ainsi, autofs se déplace vers la prochaine source de mappage de la configuration nsswitch.

8.4.4. Utiliser LDAP pour stocker des mappages Automounter

Les bibliothèques de clients LDAP doivent être installées sur tous les systèmes configurés pour récupérer les mappages automounter de LDAP. Sur Red Hat Enterprise Linux, le paquet openldap devrait être installé automatiquement en tant que dépendance d'automounter. Pour configurer l'accès LDAP, veuillez modifier /etc/openldap/ldap.conf. Assurez-vous que les valeurs BASE, URI, et schémas soient définies correctement pour votre site.
Le schéma le plus récemment établi pour stocker des mappages Automount dans LDAP est décrit par rfc2307bis. Pour utiliser ce schéma, il est nécessaire de le définir dans la configuration autofs (/etc/sysconfig/autofs) en supprimant les caractères de commentaires de la définition du schéma. Par exemple :

Exemple 8.4. Paramétrer la configuration autofs

DEFAULT_MAP_OBJECT_CLASS="automountMap"
DEFAULT_ENTRY_OBJECT_CLASS="automount"
DEFAULT_MAP_ATTRIBUTE="automountMapName"
DEFAULT_ENTRY_ATTRIBUTE="automountKey"
DEFAULT_VALUE_ATTRIBUTE="automountInformation"
Assurez-vous qu'il s'agisse bien des seules entrées du schéma qui ne soient pas des commentaires dans la configuration. automountKey remplace l'attribut cn dans le schéma rfc2307bis. Un LDIF d'un exemple de configuration est décrit ci-dessous :

Exemple 8.5. Configuration LDF

# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (&(objectclass=automountMap)(automountMapName=auto.master))
# requesting: ALL
#

# auto.master, example.com
dn: automountMapName=auto.master,dc=example,dc=com
objectClass: top
objectClass: automountMap
automountMapName: auto.master

# extended LDIF
#
# LDAPv3
# base <automountMapName=auto.master,dc=example,dc=com> with scope subtree
# filter: (objectclass=automount)
# requesting: ALL
#

# /home, auto.master, example.com
dn: automountMapName=auto.master,dc=example,dc=com
objectClass: automount
cn: /home

automountKey: /home
automountInformation: auto.home

# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (&(objectclass=automountMap)(automountMapName=auto.home))
# requesting: ALL
#

# auto.home, example.com
dn: automountMapName=auto.home,dc=example,dc=com
objectClass: automountMap
automountMapName: auto.home

# extended LDIF
#
# LDAPv3
# base <automountMapName=auto.home,dc=example,dc=com> with scope subtree
# filter: (objectclass=automount)
# requesting: ALL
#

# foo, auto.home, example.com
dn: automountKey=foo,automountMapName=auto.home,dc=example,dc=com
objectClass: automount
automountKey: foo
automountInformation: filer.example.com:/export/foo

# /, auto.home, example.com
dn: automountKey=/,automountMapName=auto.home,dc=example,dc=com
objectClass: automount
automountKey: /
automountInformation: filer.example.com:/export/&