Introducción
La automatización de puntos de montaje debe ser repetible y segura. Para una máquina virtual de laboratorio, tmpfs proporciona un sistema de archivos inofensivo que permite practicar la gestión de puntos de montaje y el archivo /etc/fstab.
En este laboratorio, creará un punto de montaje, montará un tmpfs con ansible.posix.mount, verificará el estado con findmnt y /etc/fstab, y comprobará que el playbook sea idempotente.
Crear un proyecto de automatización de montaje
En este paso, creará un proyecto para automatizar un montaje tmpfs seguro.
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
El destino del montaje es un punto de montaje real del sistema, pero utiliza tmpfs, por lo que no es necesario realizar particiones de disco. Esto mantiene el laboratorio seguro mientras se practica el comportamiento de montaje y la configuración de /etc/fstab.
Definir variables de montaje
En este paso, definirá el punto de montaje, el tipo de sistema de archivos y las opciones. La opción size=16m mantiene el tmpfs pequeño.
Antes de ejecutar los comandos en este paso, regrese al directorio del proyecto de Ansible. Esto mantiene la estabilidad de los comandos incluso si LabEx ejecuta cada paso por separado.
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
Las variables describen tanto el montaje activo como la entrada persistente. tmpfs es la fuente y el tipo de sistema de archivos, mientras que size=16m,mode=0755 controla el tamaño del sistema de archivos en memoria y los permisos del punto de montaje.
cat inventory/group_vars/managed.yml
Escribir el playbook de montaje
En este paso, utilizará ansible.posix.mount. La configuración state: mounted monta el sistema de archivos inmediatamente y asegura que exista una entrada en /etc/fstab.
Antes de ejecutar los comandos en este paso, regrese al directorio del proyecto de 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 realiza dos acciones: monta el sistema de archivos en el momento y garantiza que exista una entrada en /etc/fstab para futuros arranques. La tarea final de copia escribe un pequeño archivo de prueba dentro del sistema de archivos montado para verificar que sea utilizable.
ansible-playbook playbooks/manage-mount.yml --syntax-check
Ejecutar e inspeccionar el montaje
En este paso, ejecutará el playbook e inspeccionará el montaje activo y la entrada persistente en fstab.
cd /home/labex/project/rhce-ansible
ansible-playbook playbooks/manage-mount.yml | tee reports/mount-first.txt
La primera ejecución debería crear el punto de montaje, montar el tmpfs, actualizar /etc/fstab y escribir el archivo de prueba. Verificará cada uno de estos resultados directamente.
findmnt /mnt/rhce-ansible-data
findmnt confirma que la tabla de montaje activa del kernel contiene el punto de montaje.
grep -F /mnt/rhce-ansible-data /etc/fstab
La línea en /etc/fstab confirma que la configuración persistente existe.
cat /mnt/rhce-ansible-data/mounted-by-ansible.txt
Leer el archivo de prueba demuestra que el sistema de archivos montado es escribible y está correctamente adjunto en la ruta esperada.
Confirmar que la automatización del montaje es idempotente
En este paso, volverá a ejecutar el playbook. El punto de montaje, la entrada en fstab y el archivo de prueba ya deberían coincidir con el estado deseado.
cd /home/labex/project/rhce-ansible
ansible-playbook playbooks/manage-mount.yml | tee reports/mount-second.txt
La segunda ejecución verifica si Ansible puede reconocer el montaje existente, la entrada en fstab y el archivo de prueba sin realizar cambios.
grep -E 'host.*changed=0' reports/mount-second.txt
Resumen
Ha configurado un montaje tmpfs seguro con ansible.posix.mount, verificado el estado del montaje activo y persistente, y confirmado que el playbook converge correctamente.


