Introduction
L'automatisation des points de montage doit être reproductible et sécurisée. Pour une machine virtuelle de laboratoire, tmpfs fournit un système de fichiers inoffensif qui permet néanmoins de s'exercer à la gestion des points de montage et du fichier /etc/fstab.
Dans ce laboratoire, vous allez créer un point de montage, monter un tmpfs avec ansible.posix.mount, vérifier le résultat avec findmnt et /etc/fstab, et démontrer l'idempotence du playbook.
Créer un projet d'automatisation de montage
Dans cette étape, vous allez créer un projet pour automatiser un montage tmpfs sécurisé.
cd /home/labex/project
mkdir -p rhce-ansible/{inventory,playbooks,reports}
cd rhce-ansible
cat > ansible.cfg <<'EOF'
[defaults]
inventory = ./inventory/hosts
host_key_checking = False
retry_files_enabled = False
EOF
cat > inventory/hosts <<'EOF'
[managed]
host ansible_connection=local
EOF
La cible du montage est un point de montage système réel, mais comme il utilise tmpfs, aucun partitionnement de disque n'est nécessaire. Cela permet de garder le laboratoire sécurisé tout en pratiquant la gestion des montages et du fichier /etc/fstab.
Définir les variables de montage
Dans cette étape, vous allez définir le point de montage, le type de système de fichiers et les options. L'option size=16m permet de limiter la taille du tmpfs.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet Ansible. Cela garantit la stabilité des commandes, même si LabEx exécute chaque étape séparément.
cd /home/labex/project/rhce-ansible
mkdir -p inventory/group_vars
cat > inventory/group_vars/managed.yml <<'EOF'
mount_point: /mnt/rhce-ansible-data
mount_src: tmpfs
mount_fstype: tmpfs
mount_opts: size=16m,mode=0755
EOF
Les variables décrivent à la fois le montage actif et l'entrée persistante. tmpfs est la source et le type de système de fichiers, tandis que size=16m,mode=0755 contrôle la taille du système de fichiers en mémoire et les permissions du point de montage.
cat inventory/group_vars/managed.yml
Rédiger le playbook de montage
Dans cette étape, vous allez utiliser ansible.posix.mount. Le paramètre state: mounted permet à la fois de monter le système de fichiers immédiatement et de garantir l'existence d'une entrée dans /etc/fstab.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet Ansible.
cd /home/labex/project/rhce-ansible
cat > playbooks/manage-mount.yml <<'EOF'
---
- name: Configure a safe tmpfs mount
hosts: managed
become: true
gather_facts: false
tasks:
- name: Ensure mount point exists
ansible.builtin.file:
path: "{{ mount_point }}"
state: directory
mode: '0755'
- name: Mount and persist tmpfs
ansible.posix.mount:
path: "{{ mount_point }}"
src: "{{ mount_src }}"
fstype: "{{ mount_fstype }}"
opts: "{{ mount_opts }}"
state: mounted
- name: Write evidence inside mounted filesystem
ansible.builtin.copy:
dest: "{{ mount_point }}/mounted-by-ansible.txt"
content: |
mounted=true
mode: '0644'
EOF
state: mounted effectue deux actions : il monte le système de fichiers immédiatement et s'assure qu'une entrée /etc/fstab existe pour les démarrages futurs. La dernière tâche de copie écrit un petit marqueur à l'intérieur du système de fichiers monté afin que vous puissiez vérifier que le montage est opérationnel.
ansible-playbook playbooks/manage-mount.yml --syntax-check
Exécuter et inspecter le montage
Dans cette étape, vous allez exécuter le playbook et inspecter le montage actif ainsi que l'entrée persistante dans fstab.
cd /home/labex/project/rhce-ansible
ansible-playbook playbooks/manage-mount.yml | tee reports/mount-first.txt
La première exécution doit créer le point de montage, monter le tmpfs, mettre à jour /etc/fstab et écrire le fichier marqueur. Vous allez vérifier chacun de ces résultats directement.
findmnt /mnt/rhce-ansible-data
findmnt confirme que la table de montage active du noyau contient bien le point de montage.
grep -F /mnt/rhce-ansible-data /etc/fstab
La ligne dans /etc/fstab confirme que la configuration persistante est bien présente.
cat /mnt/rhce-ansible-data/mounted-by-ansible.txt
La lecture du fichier marqueur prouve que le système de fichiers monté est accessible en écriture et correctement attaché au chemin attendu.
Confirmer l'idempotence de l'automatisation du montage
Dans cette étape, vous allez relancer le playbook. Le point de montage, l'entrée fstab et le fichier de preuve doivent déjà correspondre à l'état souhaité.
cd /home/labex/project/rhce-ansible
ansible-playbook playbooks/manage-mount.yml | tee reports/mount-second.txt
La seconde exécution vérifie si Ansible est capable de reconnaître le montage existant, l'entrée fstab et le fichier marqueur sans effectuer de modifications.
grep -E 'host.*changed=0' reports/mount-second.txt
Résumé
Vous avez configuré un montage tmpfs sécurisé avec ansible.posix.mount, vérifié l'état du montage actif et persistant, et confirmé que le playbook converge correctement.


