Automatizar la configuración de almacenamiento y puntos de montaje

AnsibleBeginner
Practicar Ahora

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.