Post

autofs

autofs

autofs

Autofs est un démon de service qui monte et remonte automatiquement tous les partages distants sshfs, NFS et autres types de partages pour vous, à la demande. Chaque fois que le point de montage est accédé, il remonte le partage distant s’il n’est pas déjà monté. C’est très efficace et bien plus efficace que de faire des montages fstab personnalisés qui peuvent ne pas être fiables si votre machine subit des problèmes de réseau et ne se rétablit pas.

Installation

1
2
sudo pacman -S autofs       # archlinux/manjaro
sudo apt-get install autofs # debian/ubuntu

Modification hosts

1
sudo nano /etc/hosts

192.168.0.45 shuttle

Les montages NFS de shuttle

1
2
3
4
5
6
[yann@e6230 ~]$ showmount -e shuttle
Export list for shuttle:
/media/video                 192.168.0.0/24
/media/yanplus/BiblioCalibre 192.168.0.0/24
/media/yanplus/Musique       192.168.0.0/24
/media/yanplus/devel         192.168.0.0/24

Découverte “Auto”

AutoFS offre une nouvelle façon de découvrir et de monter automatiquement des partages sur des serveurs distants . Pour activer la détection automatique et le montage de partages réseau de tous les serveurs accessibles sans autre configuration, vous aurez besoin de vérifier ou d’ajouter la ligne suivante au fichier /etc/autofs/auto.master:

sudo nano /etc/autofs/auto.master

1
  /net -hosts

Chaque nom d’hôte doit être résolu, par exemple le nom d’une adresse IP dans /etc/hosts ou via DNS sudo nano /etc/hosts le serveur est à l’adresse 192.168.0.12 et on l’appelle cubieboard

Modifier le hosts pour ajouter le nom du serveur nfs et son adresse IP

1
sudo nano /etc/hosts
1
2
3
[...]
192.168.0.45	shuttle
[...]

Après relance

sudo systemctl restart autofs

On découvre les partages de shuttle

ls -l /net/shuttle

1
2
total 0
dr-xr-xr-x 4 root root 0 24 juin  16:37 media

ls -l /net/shuttle/media/yanplus

1
2
3
4
total 0
drwxr-xr-x 2 root root 0 24 juin  16:48 BiblioCalibre
drwxr-xr-x 2 root root 0 24 juin  16:48 Musique
drwxr-xr-x 2 root root 0 24 juin  16:48 devel

Lancement manuel

1
sudo systemctl start autofs

Status

1
sudo systemctl status autofs
1
2
3
4
5
6
7
8
9
10
11
● autofs.service - Automounts filesystems on demand
   Loaded: loaded (/usr/lib/systemd/system/autofs.service; disabled; vendor pres
   Active: active (running) since Sat 2017-06-24 16:26:49 CEST; 12s ago
  Process: 3901 ExecStart=/usr/bin/automount $OPTIONS --pid-file /run/autofs.pid
 Main PID: 3903 (automount)
    Tasks: 6 (limit: 4915)
   CGroup: /system.slice/autofs.service
           └─3903 /usr/bin/automount --pid-file /run/autofs.pid

juin 24 16:26:49 e6230 systemd[1]: Starting Automounts filesystems on demand...
juin 24 16:26:49 e6230 systemd[1]: Started Automounts filesystems on demand.

Pour la prise en compte autofs au démarrage

1
sudo systemctl enable autofs

Créer un lien dans le dossier $HOME

1
ln -s /net/shuttle/media/yanplus $HOME/media

Automatisation via autofs

Automatisation des actions à distance via les autofs

Une fois installé, nous avons configuré notre support de base par défaut pour toutes les actions qui allaient être ajoutées.
Toutes les actions ajoutées apparaissent sous le “/mnt” comme un sous-dossier.

Pour configurer cela, j’ai donc ajouté la ligne ci-dessous au bas du fichier situé ici /etc/auto.master

Veuillez noter : si vous souhaitez que ce fichier soit exécuté et monté sous un utilisateur sudo, les uid et gid, alias userid et groupid, devront être ajustés pour correspondre aux vôtres.
ouvrir et modifier le fichier

1
sudo nano /etc/auto.master

La ligne ci-dessous suppose que le fichier sera monté sous l’utilisateur root.

1
/mnt /etc/auto.sshfs uid=0,gid=0,--timeout=30,--ghost

Maintenant que nous avons la configuration de base du chemin par défaut, nous pouvons nous concentrer sur l’ajout des points de montage.

S’il s’agit d’un chemin basé sur ssh/sshfs pour un serveur distant, nous vous recommandons vivement de vous assurer que vous avez déjà configuré l’authentification de base par clé sans mot de passe entre les machines. Ceci est fortement recommandé afin qu’il n’y ait pas d’invite de mot de passe ou de mot de passe enregistré dans un fichier texte ou une commande locale pour des raisons de sécurité. Si cela n’est pas déjà fait, veuillez consulter un tutoriel comme celui-ci pour obtenir cette configuration en premier lieu (en).
Veuillez vous assurer que lors de la génération de la paire de clés, le mot de passe est vide, c’est-à-dire qu’il faut appuyer deux fois sur la touche Entrée lorsqu’on vous demande le mot de passe plutôt que d’en spécifier un, et ce, par l’intermédiaire de la machine qui va accéder au partage à distance.

Avec cette configuration, nous pouvons créer les points de montage.

Dans mon cas, je voulais monter 2 dossiers distants basés sur sshfs pour accéder aux sauvegardes et les stocker.

Les chemins d’accès aux dossiers :
morgan
rsyncnet

Ces chemins finiront par devenir les chemins du dessous une fois montés.

1
2
/mnt/morgan
/mnt/rsyncnet

Il faudrait donc d’abord fabriquer la chaîne de montage de sshfs nécessaire pour les deux. Voir les exemples ci-dessous. Vous remplaceriez le nom devant et la section “Username@HostnameorIP:/remote/path” par vos informations de connexion sshfs.

1
2
morgan  fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs#Username@HostnameorIP:/remote/path
rsyncnet -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs#Username@HostnameorIP:/remote/path

Une fois que vous avez créé les chaînes de montage, nous devons les ajouter au fichier “/etc/auto.sshfs”. Créons ou modifions donc ce fichier et ajoutons la ou les lignes que vous avez créées ci-dessus. Nous allons utiliser nano pour cela via l’utilisateur root ou sudo, puis quitter et enregistrer.

1
sudo nano /etc/auto.sshfs

Maintenant, si vous avez déjà fait monter ces chemins manuellement via fstab, vous voudrez les démonter avant de continuer.

1
sudo umount /previous/mount/point

Nous devons maintenant recharger le service autofs pour qu’il voit les changements de configuration que nous avons apportés aux fichiers /etc/auto.master et /etc/auto.sshfs

1
sudo systemctl restart autofs 

Nous pouvons maintenant tester son fonctionnement en effectuant un “df -h” et voir si les supports sont actuellement là. Si ce n’est pas le cas, nous pouvons tester l’automount en passant au point de montage ou en essayant d’y accéder pour le démarrer. Dans mon cas, nous avons testé avec le premier point de montage /mnt/morgan

1
2
cd /mnt/morgan
ls -lah /mnt/morgan

Une fois que vous essayez d’y accéder, il se peut que la première fois qu’il se connecte, il se peut que vous soyez bloqué pendant une seconde, alors vous devriez voir une liste de tous les fichiers qui se trouvent dans ce chemin. Ensuite, pour voir s’il est monté, vous pouvez faire un autre “df -h” pour voir les points de montage actuels. Il devrait ressembler à quelque chose comme ceci.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@coby:~# df -h
 Filesystem                                       Size  Used Avail Use% Mounted on
 udev                                              63G     0   63G   0% /dev
 tmpfs                                             13G  1.3G   12G  11% /run
 rpool/ROOT/pve-1                                 424G  276G  149G  65% /
 tmpfs                                             63G   37M   63G   1% /dev/shm
 tmpfs                                            5.0M     0  5.0M   0% /run/lock
 tmpfs                                             63G     0   63G   0% /sys/fs/cgroup
 rpool                                            149G     0  149G   0% /rpool
 rpool/ROOT                                       149G     0  149G   0% /rpool/ROOT
 rpool/data                                       149G     0  149G   0% /rpool/data
 tmpfs                                             13G     0   13G   0% /run/user/0
 /dev/fuse                                         30M   72K   30M   1% /etc/pve
 /dev/sdd                                         916G   80M  870G   1% /sdd
 user@hostname:/remote/path  708G  131G  577G  19% /mnt/morgan   <<<<<<<<<<<< Note the first mount
 user@hostname:                    1.1T  538G  563G  49% /mnt/rsyncnet  <<<<<Note the second mount also shows

Liens

  • https://wiki.archlinux.org/index.php/Autofs
  • https://linux.die.net/man/5/autofs
  • https://help.ubuntu.com/community/Autofs
  • https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/Mounting_NFS_File_Systems-Mounting_NFS_File_Systems_using_autofs.html
Cet article est sous licence CC BY 4.0 par l'auteur.