Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Création d’un montage NFS
Scénario :
On souhaite :
- créer un répertoire partagé sur l’hôte,
- créer un accès FTP pour donner l’accès au contenu de ce répertoire à un tiers (client ou prestataire). Ce tiers n'a pas accès au serveur client en SSH. Il peut uniquement intervenir sur le contenu du répertoire.
- monter ce partage en NFS sur le serveur client dans un répertoire spécifique.
- Option : créer un lien symbolique du contenu du montage sur le serveur client. Utile lorsque l'on donne accès à du code à modifier à un tiers sans lui donner accès au serveur client en SSH. Les modifications du contenu du répertoire sont répercutées dans le répertoire correspondant, sur le serveur client.
Dans l’exemple suivant :
- l’hôte est le serveur de données « eole2.ajlsm.com »,
- le répertoire à partager est « /var/data/module-pleade-data/ »,
- l'utilisateur FTP est « module-pleade:pleade »,
- le client NFS est le serveur de recette « mercure »
- le montage doit être réalisé dans « /recette/msh-dijon/drupal/internet/web/modules/custom ».
Création du répertoire de partage sur l’hôte
Sur l’hôte (eole2.ajlsm.com), avec l’utilisateur root, créer le répertoire de partage :
$ mkdir /var/data/module-pleade-data
Attribuer les droits au répertoire :
$ chown -R module-pleade:pleade /var/data/module-pleade-data
Création de l’utilisateur FTP
Dans webmin, créer l’utilisateur module-pleade du groupe pleade, qui pointe sur /var/data/module-pleade-data en suivant la doc : http://mw.ajlsm.com/wiki/Cr%C3%A9er_compte_FTP_sur_eole
Valider avec un test de connexion depuis un client FTP. Par exemple : Filezilla.
Configuration des exportations NFS sur le serveur hôte
Sur l’hôte (eole2.ajlsm.com), et dans /etc/exports, ajouter :
$ vim /etc/exports
Ajouter la ligne suivante :
# module-pleade-data
/var/data/module-pleade-data 192.168.123.3(no_subtree_check,sync,rw)
Lancer le service NFS
$ /etc/init.d/nfs-kernel-server start
Réglage du pare-feu sur l’hôte
Vérifier l’état du pare-feu
$ sudo ufw status
Dans l’exemple suivi pour ce tuto, le réglage du pare-feu de l’hôte (eole2.ajlsm.com) est déjà créé.
Anywhere ALLOW 192.168.123.0/24
Sinon, ouvrir le port pour NFS comme suit :
$ sudo ufw allow from client_ip to any port nfs
Puis vérifier qu’il est bien pris en compte :
$ sudo ufw status
Dans la sortie de ufw status, l’IP du « client » doit apparaître avec un port ouvert.
Création de points de montage et de répertoires de montage sur le client
Sur le serveur client (Mercure), créer le répertoire du point de montage :
$ sudo mkdir -p /var/data/module-pleade-data
Ensuite, monter le répertoire de l’hôte sur le client :
sudo mount 192.168.123.101:/var/data/module-pleade-data /var/data/module-pleade-data
Vérifier le montage :
$ df -h
[...]
tmpfs 3,5G 0 3,5G 0% /run/user/1000
tmpfs 100K 0 100K 0% /var/lib/lxd/shmounts
tmpfs 100K 0 100K 0% /var/lib/lxd/devlxd
192.168.123.101:/var/data/module-pleade-data 66T 16T 47T 25% /var/data/module-pleade-data
Création de l’accès direct au contenu du répertoire partagé
On souhaite remplacer le contenu d'un répertoire présent sur le serveur client par celui du répertoire créé sur le serveur de l'hôte.
C'est utile lors d'une intervention externe sur du code et sans accès SSH au client.
Pour mettre ce mode en place, il faut copier le contenu du répertoire client dans le répertoire créé sur l'hôte, puis supprimer ce contenu sur le serveur client et faire un lien symbolique vers le contenu du répertoire de l'hôte.
Copier le contenu du répertoire
On souhaite copier le contenu du répertoire /recette/msh-dijon/drupal/internet/web/modules/custom depuis le serveur client vers le répertoire à partager sur l'hôte.
Sur le serveur hôte, changez d'utilisateur (ne pas copier en root) :
$ su ajlsm
Lancer la copie :
$ scp -r ajlsm@46.105.188.172:/home/ajlsm/recette/msh-dijon/drupal/internet/web/modules/custom/pleade /var/data/module-pleade-data/
Sur le serveur client, vérifier que la copie est bien accessible :
$ ls -l /home/ajlsm/recette/msh-dijon/drupal/internet/web/modules/custom/pleade
Créer un lien symbolique depuis répertoire vide du client vers le montage NFS de l'hôte.
Depuis /recette/msh-dijon/drupal/internet/web/modules/custom
$ ln -s /var/data/module-pleade-data/pleade
Depuis le client (mercure), le test suivant doit afficher le contenu du répertoire :
$ ls -l /var/data/module-pleade-data/pleade
Montage des répertoires NFS à distance au démarrage
Pour monter automatiquement les partages NFS lors du démarrage du serveur client, modifier le fichier /etc/fstab
$ sudo vim /etc/fstab
Ajouter la ligne suivante :
192.168.123.101:/var/data/module-pleade-data /var/data/module-pleade-data nfs rw,soft,intr 0 0