Centralisation des homes over nfs

  • Auteurs :
    • ChristopheDubreuil
    • StephaneLeblond
    • NicolasLebrun
  • Version : 1.0

  • Date de création :

    15/07/2014

  • Modification : Pas de modification

  • Status : En cours d'écriture

  • Relectures :
    Relu par :
    • Non relu
  • Validation :
    Validé par :
    • Non validé
  • Destinataire :

  • Commentaires :

  • Vie du document :
    • 1.0 :

      Version initiale

      15/07/2014


1   Le problème

Lorsque l'on a plusieurs serveurs de clients fin, il peut être pratique de centraliser les homes, afin d'avoir un ensemble cohérent.

On peut faire cela de différentes manière. La méthode proposée explore le montage nfs via pammount ( donc très tot dans le processus ).

Il y a d'autre possibilités, mais certainement non compatibles avec le montage de Mes espaces via pam_mount ( que ce soit via ssh ou via smb )
  • Montage via automount
  • Montage via les options de ltsp ( mais certainement non compatible avec le montage de Mes espac

Une étude plus complète serait interressante....

2   Préparation du serveur nfs

Le serveur peut etre n'importe quelle machine linux. Il sera indépendant des serveurs d'applications, afin de ne pas générer de pb de montage.

2.1   Prerequis

Ldapsearch doit être installé et configuré sur la machine.

Par exemple :

apt-get install ldap-utils

Et configurer /etc/ldap/ldap.conf qui doit a minima contenir.

BASE o=gouv,c=fr
URI  ldap://ldap

2.2   Création des homes

Créer un script que l'on peut passer en cron, toutes les nuits par exemple

cat /usr/local/bin/mkhomes.sh

#!/bin/bash
ldapsearch -x -LLL -b "ou=utilisateurs,ou=0451462v,ou=ac-orleans-tours,ou=education,o=gouv,c=fr" "(objectClass=person)" uid | grep "uid: [a-zA-Z].[a-zA-Z]" | cut -d " " -f2 | sort > /tmp/tmp_list_users
{
while read line
do
       echo "Création du home de $line"
       mkhomedir_helper $line
done < /tmp/tmp_list_users
}
rm -f /tmp/tmp_list_users

2.3   Correction du mapping pour les ID

cat /etc/idmapd.conf

[General]
Verbosity = 1
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain
Domain = lyc-jacques-monod-st-jean-de-braye.ac-orleans-tours.fr
[Mapping]
Nobody-User = NFSnobody
Nobody-Group = NFSnogroup

2.4   Configuration de nfs

Installer nfs server.

apt-get install nfs-kernel-server

Configurer le partage de home

cat /etc/exports

3   Sur le client

3.1   Correction du mapping pour les ID

cat /etc/idmapd.conf

[General]
Verbosity = 1
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain
Domain = lyc-jacques-monod-st-jean-de-braye.ac-orleans-tours.fr
[Mapping]
Nobody-User = NFSnobody
Nobody-Group = NFSnogroup

3.2   Adaptation de pam_mount.conf.xml

Version validée ubuntu

cat /etc/security/pam_mount.conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<pam_mount>
<debug enable="1" />
<mkmountpoint enable="1" remove="true" />
<fsckloop device="/dev/loop7" />
<mntoptions allow="*" />
...

...
<fusemount>/sbin/mount.fuse %(VOLUME) %(MNTPT) -o %(OPTIONS)</fusemount>
<fuseumount>/bin/fusermount -u %(MNTPT)</fuseumount>

<umount>sudo /bin/umount %(MNTPT)</umount>
...

...
<nfsmount>/bin/mount -t nfs  %(SERVER):%(VOLUME) %(MNTPT) -o %(OPTIONS) </nfsmount>

<fd0ssh>sshpass</fd0ssh>

<pmvarrun>sudo /usr/sbin/pmvarrun -u %(USER) -o %(OPERATION) -d</pmvarrun>
<volume path="~" mountpoint="~" server="192.168.0.104" fstype="nfs" options="defaults"/>
<volume user="*" fstype="fuse" path="sshfs#%(USER)@ctrlr:" mountpoint="~/Mes_espaces" ssh="1" options="password_stdin,reconnect,follow_symlinks,nonempty" />

</pam_mount>

Version validée debian jessie

cat /etc/security/pam_mount.conf.xml

<volume user="*" mountpoint="~" path="~" server="linuxhome" fstype="nfs" options="defaults" />

Note

Il faut régler correctement sudo pour que cela fonctionne

Note

Bien veiller à l'ordre de déclaration des points de montage

Note

on doit aussi pouvoir monter le "home" via ssh, mais il n'est pas sur que les performances soient au RDV. A tester.

4   Remerciements

Merci aux admins de monod pour cette contribution

AdminDocs: linux/Centralisation des homes over nfs (last edited 26/07/2016 21:26:44 by NicolasLebrun)