Migración de shares
Toolkit basado en Ansible para inspeccionar, montar, desmontar y mantener shares NFS y CIFS en múltiples hosts Linux de forma segura, controlada y auditable.
Este repositorio está diseñado para tareas operativas, ventanas de mantenimiento y auditorías de infraestructura, con una clara separación de responsabilidades.
https://github.com/Escleiron/Playbooks/tree/main/Share_maintenance
Estructura del repositorio
shares_maintenances ├── Checks │ ├── mount_state_snapshot.yml │ └── mount_inventory_menu.sh ├── Umount │ ├── generate_variable_host_patter.sh │ └── umount_share.yml ├── Mount │ ├── mount_fstab_shares.yml │ ├── mount_snapshot_txt_to_yml.sh │ └── mount_state_after_snapshot.yml ├── Modify │ └── replace_fstab_sources.yml └── README.md
Inicio rápido (migración típica)
- Ejecutar
Checks/mount_state_snapshot.yml - Generar
fstab_host_patternusandogenerate_variable_host_pattern.sh - Revisar el patrón generado
- Ejecutar
Umount/umount_share.yml - Realizar la migración backend / actualización DNS
- Restaurar los mounts usando los playbooks de Mount
Índice
Checks
Este directorio contiene herramientas de solo lectura utilizadas para auditar y analizar el estado actual de los mounts NFS y CIFS en todos los hosts gestionados.
mount_state_snapshot.yml
Playbook de Ansible que recopila un snapshot de los shares NFS y CIFS montados en todos los hosts objetivo y genera un inventario consolidado en el nodo de control.
Funcionalidades clave
- Se ejecuta contra todos los hosts
- Usa facts
ansible_mounts - Filtra:
- mounts NFS
- mounts CIFS
- dispositivos que coinciden con un patrón configurable
- Agrega los resultados de forma centralizada en localhost
- Genera un fichero de reporte con timestamp
Variables configurables
fstab_host_pattern: "SOURCEA|SOURCEB|SOURCEC"
Uso
ansible-playbook -i $your_inventory Checks/mount_state_snapshot.yml
Salida
mount_inventory_YYYY-MM-DD_HH-MM-SS.txt
Script Bash de ayuda diseñado para analizar y procesar los ficheros de inventario
generados por mount_state_snapshot.yml.
Proporciona un menú interactivo para revisar, validar y exportar los datos de mounts.
Funcionalidades
- Revisar resultados analizados
- Mostrar servidores únicos
- Convertir inventario a CSV
Uso
dos2unix mount_inventory_menu.sh
chmod +x mount_inventory_menu.sh
./mount_inventory_menu.sh mount_inventory_YYYY-MM-DD_HH-MM-SS.txt
Umount
Contiene playbooks usados para desmontar de forma segura shares NFS y CIFS basándose en el filtrado por origen.
generate_variable_host_patter.sh
Genera automáticamente la variable de Ansible fstab_host_pattern
a partir de un fichero de inventario de mounts.
Uso
./generate_variable_host_pattern.sh mount_inventory_YYYY-MM-DD_HH-MM-SS.txt
Salida
fstab_host_pattern: "//server|server|192.168.1.80"
Desmonta sistemas de ficheros NFS y CIFS cuyo origen coincide con un patrón definido.
Tags disponibles
| Tag | Descripción |
|---|---|
| nfs | Desmontar solo sistemas NFS |
| cifs | Desmontar solo sistemas CIFS |
| all_types | Desmontar todos los sistemas coincidentes |
Mount
Contiene playbooks y scripts auxiliares usados para restaurar mounts
definidos en /etc/fstab.
Este directorio ofrece dos estrategias de montaje, según el escenario.
Opción 1: Montar todos los sistemas definidos en /etc/fstab
Usar esta opción cuando se quiera montar todo lo definido en /etc/fstab,
por ejemplo tras un reinicio o una ventana de mantenimiento global.
ansible-playbook -i $your_inventory Mount/mount_fstab_shares.yml
Opción 2: Restaurar solo los mounts detectados durante Checks
Usar esta opción cuando se quiera restaurar únicamente los sistemas de ficheros que estaban montados durante la fase de Checks (restauración selectiva y controlada).
Procedimiento
- Convertir el fichero snapshot a YAML
- Ejecutar el playbook de restauración
./mount_snapshot_txt_to_yml.sh mount_inventory_YYYY-MM-DD_HH-MM-SS.txt
ansible-playbook -i $your_inventory Mount/mount_state_after_snapshot.yml
Modify
Reservado para playbooks que modifican configuraciones existentes de shares.
update_fstab_sources.yml
Playbook de Ansible diseñado para actualizar de forma segura las fuentes
en /etc/fstab, preservando puntos de montaje y opciones.
Dry run (recomendado)
ansible-playbook -i $your_inventory Modify/update_fstab_sources.yml --check
Aplicar cambios
ansible-playbook -i $your_inventory Modify/update_fstab_sources.yml
Rollback
cp /etc/fstab.backup_YYYY-MM-DD_HH-MM-SS /etc/fstab