
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).
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- 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.
Prérequis
Section intitulée « Prérequis »- Avoir
ansible.posixinstallé. - Connaître le format
/etc/fstab(6 colonnes).
Les 5 valeurs de state:
Section intitulée « Les 5 valeurs de state: »state: | Effet sur /etc/fstab | Effet runtime |
|---|---|---|
mounted | Ajoute/met à jour la ligne | Monte le filesystem maintenant |
unmounted | Ne touche pas à fstab | Démonte maintenant |
present | Ajoute/met à jour la ligne | Ne monte pas (entrée fstab seule) |
absent | Supprime la ligne | Démonte si monté |
remounted | Ne touche pas à fstab | Remount (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.
Montage standard (state: mounted)
Section intitulée « Montage standard (state: mounted) »- name: Monter un disque data sur /mnt/data ansible.posix.mount: path: /mnt/data src: /dev/sdb1 fstype: xfs opts: defaults,noatime state: mountedLe module ajoute la ligne dans /etc/fstab ET lance mount /mnt/data immédiatement. Idempotent : 2e run → changed=0.
Options courantes
Section intitulée « Options courantes »| Option | Effet |
|---|---|
defaults | Combinaison par défaut (rw,suid,dev,exec,auto,nouser,async) |
noatime | Pas de mise à jour de l’access time → moins d’écritures (perf) |
nodev | Pas de fichiers spéciaux (devices) — sécurité |
nosuid | Ignore les bits setuid — sécurité |
noexec | Pas d’exécution de binaires — sécurité (/tmp, /var/log) |
loop | Pour les fichiers image (auto-association losetup) |
_netdev | Filesystem 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.
fstab seul, sans monter (state: present)
Section intitulée « fstab seul, sans monter (state: present) »- 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.
NFS (filesystem réseau)
Section intitulée « NFS (filesystem réseau) »- 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: mountedOptions 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 avecCtrl+C.rsize=/wsize=: taille des buffers (défauts généralement OK).
Sécurité : pour NFS exposé sur Internet (déconseillé), ajouter nosuid,nodev.
Loop device (fichier image)
Section intitulée « Loop device (fichier image) »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: mountedL’option loop demande à mount de configurer automatiquement un loop device pour le fichier image.
Tester avant un reboot
Section intitulée « Tester avant un reboot »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: falsemount -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.
Pièges courants
Section intitulée « Pièges courants »| Symptôme | Cause | Fix |
|---|---|---|
| Reboot bloqué en emergency mode | Entrée fstab invalide | Toujours tester avec mount -a avant reboot |
| Mount NFS échoue au boot | Manque _netdev | Ajouter _netdev aux options NFS |
| Démontage failed “device busy” | Process utilise le filesystem | lsof puis tuer/déplacer ; éviter force: true |
state: mounted ne persiste pas | Confusion avec mount CLI | Module gère fstab automatiquement |
À retenir
Section intitulée « À retenir »- 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/nosuidpour sécurité ;looppour fichiers image ;_netdevpour réseau. - NFS :
hard,intr,_netdevest le minimum. - Tester
mount -aavant un reboot pour valider fstab.
Pratiquer dans le lab
Section intitulée « Pratiquer dans le lab »Cette page a un lab d’accompagnement : labs/modules-rhel/mount/ dans stephrobert/ansible-training.
Challenge — sur db1.lab :
- Créer un fichier image 100Mo + formater ext4.
- Monter sur
/mnt/lab-dataavecloop,defaults,noatime,nodev,nosuid.
Validation pytest+testinfra :
ansible-playbook solution.ymlpytest -v labs/modules-rhel/mount/challenge/tests/4 tests vérifient le fichier image, le mount actif, fstab, et les options runtime.