Cet article explique comment activer FUSE sur un conteneur OpenVZ. FUSE (Filesystem in Userspace) permet aux utilisateurs non privilégiés de créer leurs propres systèmes de fichiers sans modifier le code du noyau. Il est disponible pour Unix et Linux mais n'est pas activé par défaut dans OpenVZ.
En tant que client chez nous, il vous suffira d'ouvrir un ticket de demander son activation.
Si vous êtes administrateur d'un environnement OpenVZ, voici la procédure :
Activer le module FUSE sur le nœud matériel:
Tout d'abord, vous devez installer et activer FUSE sur le nœud matériel. Cela peut être fait à l'aide des commandes suivante:
yum install epel-release
yum install fuse-sshfsmodprobe fuse
Vérifiez que le module est correctement chargé:
lsmod | grep fuse
Exemple de sortie:
[root@server ~]# lsmod | grep fuse
fuse 99604 12
[root@server ~]#
Information complémentaire. En cas de redémarrage il est possible que le module ne se relance pas seul.
Il vous est possible d'ajouter la ligne 'modprobe fuse' dans /etc/rc.local partie 'Preload common modules' sur une OS base Red Hat (ou encore dans /etc/modules pour base Debian)
Vous pouvez également créer le fichier /etc/modules-load.d/fuse.conf et y ajouter la ligne :
fuse
Activez FUSE sur le conteneur:
Une fois que vous avez activé FUSE sur le nœud matériel, vous devez également l'installer et l'activer sur le VPS. Vous pouvez le faire par l'une des méthodes suivantes:
Installation
yum install epel-release
yum install fuse-sshfs
Activation - Méthode 1
vzctl set CTID --devices c:10:229:rw --save
vzctl exec CTID mknod /dev/fuse c 10 229
Activation - Méthode 2
vzctl set CTID --devnodes fuse:rw --save
Veuillez remplacer CTID par votre ID (retrouvable via vzlist -a) de serveur virtuel. Cela créera un périphérique de caractère nommé /dev/fuse et lui accordera des autorisations de conteneur. Notez qu'un redémarrage du container sera nécessaire.
Vous pourrez également le vérifier dans le fichier .conf du container
[root@vps02 ~]# cat /etc/vz/conf/CTID.conf | grep DEVNODES
DEVNODES="fuse:rw "
Comme pour l'hôte, Vous pouvez également vouloir maintenir cette configuration après reboot.
Effectuez donc un test depuis l'hôte vers la VM
sshfs root@remote_ip:/testfuse /test
Et vérifiez qu'il est affiché dans la sortie de la commande 'mount':
mount | grep fuse
root@remote_ip:/testfuse on /test type fuse.sshfs (rw,relatime,user_id=0,group_id=0,allow_other)
Ajoutez ce qui suit dans /etc/fstab à l'intérieur du conteneur :
root@remote_ip:/testfuse /test fuse.sshfs allow_other,delay_connect,_netdev,IdentityFile=/root/.ssh/id_rsa 0 0
De cette façon, le répertoire FUSE est monté à l'intérieur d'un conteneur et toute la configuration FUSE reste active même après un redémarrage du nœud/conteneur. Le redémarrage lui-même n'est pas nécessaire pour appliquer l'instruction.
C'est tout!