Partager un dossier par NFS
De quoi s'agit-il ?
Il s'agit d'exposer un dossier d'un Raspberry Pi sur un réseau pour que celui-ci soit montable dans le système de fichier d'un autre Raspberry Pi.
L'intérêt de cette opération est, par exemple, que ce soit les mêmes mêmes fichiers Web qui soient utilisés par plusieurs serveurs Apache installés sur des machines différentes.
Dans notre exemple, c'est les dossier /var/html/pub du Raspberry Pi 3 qui sera utilisé comme racine des serveurs Apache installés sur les Pi Zero pour contenir toutes les pages Web. De cette façon, lorsque l'on modifie les page Web d'un site, on ne les range qu'à un seul endroit, cet endroit étant visible et partagé pour tous les Pi Zero.
Pour cela, il est nécessaire de transformer le Raspberry PI 3 en serveur NFS (Network File System).
L'intérêt de cette opération est, par exemple, que ce soit les mêmes mêmes fichiers Web qui soient utilisés par plusieurs serveurs Apache installés sur des machines différentes.
Dans notre exemple, c'est les dossier /var/html/pub du Raspberry Pi 3 qui sera utilisé comme racine des serveurs Apache installés sur les Pi Zero pour contenir toutes les pages Web. De cette façon, lorsque l'on modifie les page Web d'un site, on ne les range qu'à un seul endroit, cet endroit étant visible et partagé pour tous les Pi Zero.
Pour cela, il est nécessaire de transformer le Raspberry PI 3 en serveur NFS (Network File System).
Installer NFS Server
Pour faire fonctionner NFS, il y a deux composants à installer : nfs-kernel-server et nfs-common.
pi@cluster01: $ sudo apt-get install nfs-kernel-server
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
nfs-kernel-server
. . .
Creating config file /etc/exports with new version
Creating config file /etc/default/nfs-kernel-server with new version
Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u2) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
pi@cluster01: $
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
nfs-kernel-server
. . .
Creating config file /etc/exports with new version
Creating config file /etc/default/nfs-kernel-server with new version
Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u2) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
pi@cluster01: $
Configurer NFS Server
A l'installation un fichier de configuration /etc/exports a été créé. Il faut maintenant indiquer dans ce fichier quel répertoire va être exposé sur le réseau et quelles sont les machines qui ont le droit de le voir.
Dans notre exemple, il s'agit de partager le répertoire /var/www/pub du Raspberry PI3 (cluster01) pour le trois premier Pi Zero du cluster (dans ma configuration le quatrième est réservé à un autre usage) dont les adresses IP sont des adresses statiques, respectivement 192.168.1.111, 112, 113.
Il faut évidement commencer par créer dans /var le dossier /var/www/pub qui va être partagé :
Dans notre exemple, il s'agit de partager le répertoire /var/www/pub du Raspberry PI3 (cluster01) pour le trois premier Pi Zero du cluster (dans ma configuration le quatrième est réservé à un autre usage) dont les adresses IP sont des adresses statiques, respectivement 192.168.1.111, 112, 113.
Il faut évidement commencer par créer dans /var le dossier /var/www/pub qui va être partagé :
pi@cluster01:~ $ sudo mkdir /var/www
pi@cluster01:~ $ sudo mkdir /var/www/pub
pi@cluster01:~ $ sudo nano /etc/exports
pi@cluster01:~ $ sudo mkdir /var/www/pub
pi@cluster01:~ $ sudo nano /etc/exports
Modifier maintenant le contenu du fichier /etc/exports comme indiqué ci-dessous :
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1 (rw,sync,no_subtree_check) hostname2 (ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/var/www/pub 192.168.1.111(rw,all_squash,anonuid=1000,anongid=1000,sync)
/var/www/pub 192.168.1.112(rw,all_squash,anonuid=1000,anongid=1000,sync)
/var/www/pub 192.168.1.113(rw,all_squash,anonuid=1000,anongid=1000,sync)
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1 (rw,sync,no_subtree_check) hostname2 (ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/var/www/pub 192.168.1.111(rw,all_squash,anonuid=1000,anongid=1000,sync)
/var/www/pub 192.168.1.112(rw,all_squash,anonuid=1000,anongid=1000,sync)
/var/www/pub 192.168.1.113(rw,all_squash,anonuid=1000,anongid=1000,sync)
Commentaires
Enregistrer un commentaire