4. Configuration de l'automontage avec le service LDAP

Le principe de l'automontage veut que le montage d'une arborescence de système de fichiers réseau se fasse automatiquement et uniquement à l'utilisation. En effet, il n'est pas nécessaire de mobiliser les ressources du protocole NFS tant qu'une arborescence n'est pas effectivement parcourue. Dans le contexte de ce support, il n'est pas nécessaire de monter l'arborescence d'un répertoire utilisateur si celui-ci n'est pas connecté sur le poste client. On optimise ainsi les ressources du système et du réseau.

Du point de vue administration système, il est essentiel que la configuration des postes clients ne soit pas remise en question à chaque évolution du serveur ou à chaque ajout de nouveau compte utilisateur. C'est ici que le service LDAP intervient. Ce service sert à publier la configuration de l'automontage en direction des clients.

Pour appliquer ces principes, cette section doit couvrir les étapes suivantes.

  • Pour compléter les informations publiées par le service LDAP, il faut ajouter un schéma spécifique à la fonction d'automontage et ensuite importer le contenu d'un fichier de description LDIF contenant les paramètres de configuration à diffuser vers les clients.

  • Pour que le montage des arborescences soit automatique, il faut ajouter un paquet spécifique sur les systèmes clients et désigner le service LDAP comme fournisseur de la configuration. Cette désignation se fait à l'aide du Name Service Switch.

La principale difficulté dans le traitement des questions suivantes vient du fait qu'il est nécessaire d'échanger des informations entre le client et le serveur.

Dans le contexte de ce support, le service LDAP et le serveur NFS sont implantés sur le même système.

Q11.

Quel est le paquet de la distribution Debian GNU/Linux qui fournit le service d'automontage via LDAP ?

Rechercher le mot clé automount dans le champ description du catalogue des paquets disponibles.

aptitude search "?description(automount)"
p   autodir                 - crée automatiquement les répertoires home et
                group pour les comptes LDAP/NIS/SQL et locaux
p   autofs                  - montage automatique pour Linux basé sur le noyau
p   autofs-hesiod           - gestion de la carte Hesiod pour autofs
p   autofs-ldap             - gestion des schémas LDAP pour autofs
p   libnss-cache            - NSS module for using nsscache-generated files
p   libunix-configfile-perl - Perl interface to various Unix configuration files
p   ltspfsd                 - Fuse based remote filesystem hooks for LTSP thin
                clients
p   nsscache                - asynchronously synchronise local NSS databases
                with remote directory services
p   vfu                     - Versatile text-based filemanager

Le paquet autofs-ldap correspond au besoin. On peut obtenir des informations supplémentaires en consultant sa description complète à l'aide de la commande aptitude show autofs-ldap.

Q12.

Sur quel type de poste ce paquet doit il être installé ?

Le service d'automontage est a exécuter sur le poste qui ne détient pas le système de fichiers dans lequel se trouvent les répertoires utilisateur.

Ce paquet doit être installé sur le poste client puisque le processus automount doit être exécuté sur ce même client. Son installation se fait simplement avec la commande usuelle sudo aptitude install autofs-ldap.

Q13.

Quelles sont les informations relatives au service LDAP à transférer entre client et serveur ?

Pour publier la configuration de l'automontage via le service LDAP, il est nécessaire de disposer du schéma de définition des attributs dans l'annuaire. Ce schéma est fourni avec le paquet autofs-ldap et doit être transféré vers le serveur LDAP pour compléter le catalogue des objets qu'il peut contenir.

dpkg -L autofs-ldap | grep schema
/etc/ldap/schema
/etc/ldap/schema/autofs.schema
cp /etc/ldap/schema/autofs.schema .
sed -i 's/caseExactMatch/caseExactIA5Match/g' autofs.schema
 scp autofs.schema etu@192.0.2.12:~

Au moment de la rédaction de ces lignes, le fichier de schéma livré avec le paquet autofs-ldap contient une erreur que l'on corrige à l'aide de la commande sed.

L'adresse IP utilisée dans la copie d'écran ci-dessus correspond au serveur LDAP et NFS.

Q14.

Dans quel répertoire les informations transférées doivent elles être placées ?

Rechercher le répertoire de stockage des fichiers de schémas dans l'arborescence du serveur LDAP.

Une fois le fichier de schéma de transféré du client vers le serveur, celui-ci doit être placé dans l'arborescence du service LDAP avec les autres fichiers du même type.

sudo mv autofs.schema /etc/ldap/schema/
sudo chown root:root /etc/ldap/schema/autofs.schema
ls -lAh /etc/ldap/schema/autofs.schema
-rw-r--r-- 1 root root 830 sept. 27 10:29 /etc/ldap/schema/autofs.schema

Q15.

Comment intégrer ces nouvelles informations d'automontage dans la configuration du service LDAP ?

L'intégration du nouveau schéma dans la configuration du serveur se fait en plusieurs étapes. Le fichier délivré avec le paquet autofs-ldap doit être converti en fichier LDIF avant d'être ajouté au DIT de configuration du démon slapd.

La conversion en fichier LDIF se fait à l'aide de la commande slaptest fournie avec le paquet slapd.

  1. Création du répertoire de stockage du résultat de la conversion.

    mkdir schema-convert
  2. Création du fichier de traitement des schémas. Comme de schéma autofs utilise des définitions issues des schémas de rang supérieur, il est nécessaire d'inclure les autres fichiers de schémas fournis avec le paquet.

    cat << EOF >schema-convert.conf
    include /etc/ldap/schema/core.schema
    include /etc/ldap/schema/cosine.schema
    include /etc/ldap/schema/inetorgperson.schema
    include /etc/ldap/schema/autofs.schema
    EOF
  3. Conversion des fichiers de schémas au format LDIF.

    sudo slaptest -f schema-convert.conf -F schema-convert
    config file testing succeeded
  4. Extraction des définitions utiles et formatage du résultat de la conversion. La commande ci-dessous élimine toutes les informations relatives à l'horodatage et à l'identification de l'utilisateur.

    cat schema-convert/cn\=config/cn\=schema/cn\=\{3\}autofs.ldif | \
    grep -Ev structuralObjectClass\|entryUUID\|creatorsName | \
    grep -Ev createTimestamp\|entryCSN\|modifiersName\|modifyTimestamp | \
    sed 's/dn: cn={.}autofs/dn: cn=autofs,cn=schema,cn=config/g' | \
    sed 's/{.}autofs/autofs/' > autofs.ldif
  5. Ajout du schéma autofs dans la configuration du service.

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f autofs.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=autofs,cn=schema,cn=config"

Q16.

Quelle est la syntaxe du fichier de description LDIF contenant la configuration de l'automontage ?

Le fichier de description ci-dessus correspond à l'arborescence suivante.

cat ou-autofs.ldif 
dn: ou=automount,dc=lab,dc=stri
ou: automount
objectClass: top
objectClass: organizationalUnit

dn: ou=auto.master,ou=automount,dc=lab,dc=stri
ou: auto.master
objectClass: top
objectClass: automountMap

dn: cn=/ahome,ou=auto.master,ou=automount,dc=lab,dc=stri
cn: /ahome
objectClass: top
objectClass: automount
automountInformation: ldap:ou=auto.home,ou=automount,dc=lab,dc=stri

dn: ou=auto.home,ou=automount,dc=lab,dc=stri
ou: auto.home
objectClass: top
objectClass: automountMap

dn: cn=*,ou=auto.home,ou=automount,dc=lab,dc=stri
cn: *
objectClass: top
objectClass: automount
automountInformation: -fstype=nfs4 192.0.2.12:/home/&

Q17.

Comment intégrer ces définitions dans l'annuaire LDAP ?

Retrouver la syntaxe de la commande ldapadd qui permet d'insérer de nouvelles entrées dans l'annuaire.

On suit la même démarche que pour les comptes utilisateurs.

sudo ldapadd -cxWD cn=admin,dc=lab,dc=stri -f ou-autofs.ldif
Enter LDAP Password:
adding new entry "ou=automount,dc=lab,dc=stri"

adding new entry "ou=auto.master,ou=automount,dc=lab,dc=stri"

adding new entry "cn=/ahome,ou=auto.master,ou=automount,dc=lab,dc=stri"

adding new entry "ou=auto.home,ou=automount,dc=lab,dc=stri"

adding new entry "cn=*,ou=auto.home,ou=automount,dc=lab,dc=stri"