Aller au contenu
Infrastructure as Code medium

Module mount Ansible : gérer fstab et montages

10 min de lecture

Logo Ansible

ansible.posix.mount: gère les points de montage Linux : ajouter une ligne dans /etc/fstab, monter immédiatement, démonter, gérer les options. C’est le module n°1 RHCE 2026 pour les disques persistants : volumes NFS, disques data dédiés, swap files.

Module de la collection ansible.posix. Options critiques : path: (point de montage), src: (device ou source), fstype: (xfs, ext4, nfs), opts: (options), state: (mounted, unmounted, present, absent, remounted).

  • Les 5 valeurs de state: et leur effet précis sur fstab vs runtime.
  • Distinguer entrée fstab seule de mount actif + fstab.
  • Configurer des options de durcissement : noatime, nodev, nosuid, noexec.
  • Monter un partage NFS avec _netdev (attendre le réseau au boot).
  • Tester une entrée fstab avant un reboot avec mount -a.
  • Avoir ansible.posix installé.
  • Connaître le format /etc/fstab (6 colonnes).
state:Effet sur /etc/fstabEffet runtime
mountedAjoute/met à jour la ligneMonte le filesystem maintenant
unmountedNe touche pas à fstabDémonte maintenant
presentAjoute/met à jour la ligneNe monte pas (entrée fstab seule)
absentSupprime la ligneDémonte si monté
remountedNe touche pas à fstabRemount (utile après changement d’options)

Cas d’usage :

  • mounted (le plus commun) : configurer un volume permanent avec montage immédiat.
  • present : préparer fstab avant un reboot (montage différé).
  • unmounted : démonter sans toucher à fstab (debug, maintenance).
  • absent : retrait complet (démonter + retirer de fstab).
  • remounted : appliquer un changement d’options sans démonter complètement.
- name: Monter un disque data sur /mnt/data
ansible.posix.mount:
path: /mnt/data
src: /dev/sdb1
fstype: xfs
opts: defaults,noatime
state: mounted

Le module ajoute la ligne dans /etc/fstab ET lance mount /mnt/data immédiatement. Idempotent : 2e run → changed=0.

OptionEffet
defaultsCombinaison par défaut (rw,suid,dev,exec,auto,nouser,async)
noatimePas de mise à jour de l’access time → moins d’écritures (perf)
nodevPas de fichiers spéciaux (devices) — sécurité
nosuidIgnore les bits setuid — sécurité
noexecPas d’exécution de binaires — sécurité (/tmp, /var/log)
loopPour les fichiers image (auto-association losetup)
_netdevFilesystem réseau (NFS, SMB) — attendre le réseau au boot

Pattern durcissement sur les filesystems data : defaults,noatime,nodev,nosuid. Sur /tmp et /var/log/ : ajouter noexec.

- name: Ajouter dans fstab SANS monter maintenant
ansible.posix.mount:
path: /mnt/data
src: /dev/sdb1
fstype: xfs
opts: defaults
state: present

/etc/fstab est mis à jour, mais le filesystem n’est pas monté. Au prochain reboot (ou mount -a), il sera monté automatiquement.

Cas d’usage : configs réseau (_netdev) qui ne peuvent pas être montées tant que le réseau n’est pas up, ou préparation différée.

- name: Monter un partage NFS
ansible.posix.mount:
path: /mnt/shared
src: nfs-server.lab:/exports/shared
fstype: nfs
opts: rw,sync,hard,intr,_netdev
state: mounted

Options critiques NFS :

  • _netdev : attendre le réseau avant de monter au boot (sinon échec).
  • hard : retry indéfiniment en cas de coupure réseau (soft = échec après timeout — risque corruption).
  • intr : permet d’interrompre les opérations bloquées avec Ctrl+C.
  • rsize= / wsize= : taille des buffers (défauts généralement OK).

Sécurité : pour NFS exposé sur Internet (déconseillé), ajouter nosuid,nodev.

Pour tester sans disque secondaire :

- name: Creer fichier image
ansible.builtin.command:
cmd: dd if=/dev/zero of=/opt/lab-disk.img bs=1M count=100
creates: /opt/lab-disk.img
- name: Formater
community.general.filesystem:
fstype: ext4
dev: /opt/lab-disk.img
- name: Monter avec loop
ansible.posix.mount:
path: /mnt/lab-data
src: /opt/lab-disk.img
fstype: ext4
opts: loop,defaults,noatime
state: mounted

L’option loop demande à mount de configurer automatiquement un loop device pour le fichier image.

Si vous ajoutez une ligne fstab invalide, le prochain reboot échoue avec un dropshell systemd (emergency mode) — le serveur est inaccessible en SSH.

Mitigation :

- name: Ajouter une entree (testable avant reboot)
ansible.posix.mount:
path: /mnt/critical
src: /dev/critical-disk
fstype: xfs
opts: defaults
state: present # PAS mounted — fstab uniquement
- name: Tester avec mount -a (simule un reboot)
ansible.builtin.command: mount -a
changed_when: false

mount -a lit /etc/fstab et tente de monter tout. Si une entrée est cassée, vous voyez l’erreur maintenant — pas après reboot.

backup: true sur le module fait un backup de fstab avant modification — filet de sécurité gratuit.

SymptômeCauseFix
Reboot bloqué en emergency modeEntrée fstab invalideToujours tester avec mount -a avant reboot
Mount NFS échoue au bootManque _netdevAjouter _netdev aux options NFS
Démontage failed “device busy”Process utilise le filesystemlsof puis tuer/déplacer ; éviter force: true
state: mounted ne persiste pasConfusion avec mount CLIModule gère fstab automatiquement
  • 5 valeurs de state: : mounted, unmounted, present, absent, remounted.
  • mounted = mount maintenant + fstab (le plus commun).
  • present = fstab seulement (préparation différée).
  • Options : noatime/nodev/nosuid pour sécurité ; loop pour fichiers image ; _netdev pour réseau.
  • NFS : hard,intr,_netdev est le minimum.
  • Tester mount -a avant un reboot pour valider fstab.

Cette page a un lab d’accompagnement : labs/modules-rhel/mount/ dans stephrobert/ansible-training.

Challenge — sur db1.lab :

  1. Créer un fichier image 100Mo + formater ext4.
  2. Monter sur /mnt/lab-data avec loop,defaults,noatime,nodev,nosuid.

Validation pytest+testinfra :

Fenêtre de terminal
ansible-playbook solution.yml
pytest -v labs/modules-rhel/mount/challenge/tests/

4 tests vérifient le fichier image, le mount actif, fstab, et les options runtime.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn