Configuration de NFS

Préalable : Vous utiliserez votre machine virtuelle principale comme serveur et vos machines virtuelles secondaires comme clients.

Les RPC UNIX

Présentation : Le protocle RPC Unix (Remote Procedure Call) permet l'appel à distance (sur un serveur) de procédures. Ce protocole gère le nommage de la procédure, le passage des paramètres (avec traduction d'un système à un autre) et la récupération d'un éventuel résultat. Ce service est une brique de base utilisé par d'autres services (NFS, NIS, rwalld, rwhod, rusers). Nous devons donc vérifier qu'il est opérationnel.

Le service RPC NFS

Présentation : Le service NFS (Network File System) assure la publication sur le réseau (à partir d'un serveur) et l'utilisation (à partir d'un client) d'une arborescence de fichiers. Pour l'utiliser, nous devons préparer le serveur puis le client. Dans le cadre de cette séance nous allons utiliser la version 3 de NFS, mais une version 4 est également disponible.

Le serveur NFS

Installation. Vérifiez l'installation du serveur NFS :

dnf -y install nfs-utils
systemctl restart nfs-server
systemctl enable  nfs-server

Vérifiez avec rpcinfo -p localhost que le service RPC NFS est bien connu du portmapper (ce dernier étant le système d'aiguillage des RPC). Le service NFS est composé de plusieurs démons : rpc.mountd est à l'écoute des demandes de montages/démontages en provenance des clients et les démons nfsd s'occupent des demandes d'entrées/sorties.

Configuration. Les répertoires publiés par NFS sont listés dans le fichier /etc/exports. Chaque ligne à la forme suivante Vous pouvez donc exporter un répertoire vers des clients particuliers en utlisant des options adaptées aux clients.

répertoire  client1(options) client2(options) ...

Un client est

Les options les plus importantes sont (man exports pour les autres)

Voila un exemple tiré du manuel :

# sample /etc/exports file
/            master(rw) trusty(rw,no_root_squash)
/projects    proj*.local.domain(rw)
/usr         *.local.domain(ro) @trusted(rw)
/home/joe    pc001(rw,all_squash,anonuid=150,anongid=100)
/pub         (ro,insecure,all_squash)

Mise en oeuvre sur le serveur VM

Quelques manipulations :

Créer un répertoire pour l'exporter
mkdir /var/mes-exports
cd /var/mes-exports
dd if=/dev/zero of=fichier.txt bs=1k count=10
echo fini
Déclarer l'exportation
cat <<EOF >> /etc/exports

/var/mes-exports  192.168.0.0/24(rw,no_root_squash)

EOF
Exporter et vérifier
exportfs -a              # exporter
exportfs -v              # vérifier
showmount -e             # lister les exportations

Le client NFS

Commencez par installer le service NFS client :

dnf -y install nfs-utils

Pour utiliser un répertoire exporté par NFS, il suffit de le monter en utilisant la commande mount ci-dessous:

Pour savoir ce qui est exporté
showmount -e 192.168.0.10
Monter le répertoire exporté
mkdir /tmp/montage
mount -t nfs 192.168.0.10:/var/mes-exports /tmp/montage
Utiliser le répertoire exporté
ls -l /tmp/montage
touch /tmp/montage/un-autre-fichier.txt

Vérifiez le montage à partir du poste serveur (avec showmount -a).

Exercices