|
|
| Línea 74: |
Línea 74: |
| Cada playbook cubre un caso de uso distinto y puede utilizarse de forma independiente | | Cada playbook cubre un caso de uso distinto y puede utilizarse de forma independiente |
| o como parte de un flujo de trabajo. | | o como parte de un flujo de trabajo. |
|
| |
| ---
| |
|
| |
| == 1. check_mounts.yml ==
| |
|
| |
| === ¿Qué hace? ===
| |
| Este playbook comprueba los '''montajes NFS activos''' en los servidores y filtra aquellos
| |
| cuyo origen coincide con un patrón definido.
| |
|
| |
| Se utiliza principalmente para:
| |
| * Auditorías de montajes
| |
| * Validaciones previas a mantenimiento
| |
| * Comprobaciones tras reinicios
| |
|
| |
| ---
| |
|
| |
| === Lógica principal ===
| |
|
| |
| * Ejecuta el comando <code>mount</code>
| |
| * Filtra únicamente montajes NFS
| |
| * Aplica un patrón sobre el host de origen
| |
| * Muestra los resultados por servidor
| |
|
| |
| ---
| |
|
| |
| === Variables ===
| |
|
| |
| <syntaxhighlight lang="yaml">
| |
| fstab_host_pattern: "SERVER1|SERVER2|SERVER3"
| |
| </syntaxhighlight>
| |
|
| |
| Esta variable permite adaptar el playbook a distintos entornos sin modificar el código.
| |
|
| |
| ---
| |
|
| |
| === Cuándo usarlo ===
| |
|
| |
| * Antes de desmontar almacenamiento
| |
| * Para verificar dependencias de un servidor
| |
| * En tareas de inventario de NFS
| |
|
| |
| ---
| |
|
| |
| == 2. check_mounts_cifs_nfs.yml ==
| |
|
| |
| === ¿Qué hace? ===
| |
| Este playbook amplía el anterior e incluye la verificación tanto de '''montajes NFS como CIFS'''.
| |
|
| |
| Es útil en entornos mixtos donde conviven:
| |
| * Shares NFS (Linux/Unix)
| |
| * Shares CIFS (Windows / NAS)
| |
|
| |
| ---
| |
|
| |
| === Lógica principal ===
| |
|
| |
| * Ejecuta <code>mount</code> en el host remoto
| |
| * Separa resultados por tipo de filesystem
| |
| * Muestra información estructurada al operador
| |
|
| |
| ---
| |
|
| |
| === Diferencia respecto a check_mounts.yml ===
| |
|
| |
| {| class="wikitable"
| |
| ! Característica !! check_mounts.yml !! check_mounts_cifs_nfs.yml
| |
| |-
| |
| | NFS || Sí || Sí
| |
| |-
| |
| | CIFS || No || Sí
| |
| |-
| |
| | Entornos mixtos || No || Sí
| |
| |-
| |
| | Uso principal || Auditoría NFS || Auditoría global
| |
| |}
| |
|
| |
| ---
| |
|
| |
| === Cuándo usarlo ===
| |
|
| |
| * Troubleshooting de accesos a red
| |
| * Migraciones de almacenamiento
| |
| * Análisis post-reboot
| |
| * Entornos con NAS o servidores Windows
| |
|
| |
| ---
| |
|
| |
| == 3. mount_shares.yml ==
| |
|
| |
| === ¿Qué hace? ===
| |
| Este playbook monta '''todos los sistemas de ficheros definidos en <code>/etc/fstab</code>'''
| |
| ejecutando <code>mount -a</code> en los servidores destino.
| |
|
| |
| No modifica el fichero <code>/etc/fstab</code>, solo aplica su contenido.
| |
|
| |
| ---
| |
|
| |
| === Lógica principal ===
| |
|
| |
| * Ejecuta <code>mount -a</code>
| |
| * Aplica a todos los hosts del inventario
| |
| * No realiza validaciones previas
| |
|
| |
| ---
| |
|
| |
| === Cuándo usarlo ===
| |
|
| |
| * Tras un reinicio del servidor
| |
| * Después de cambios en <code>/etc/fstab</code>
| |
| * Recuperación de montajes NFS/CIFS
| |
| * Validación tras incidentes
| |
|
| |
| ⚠️ '''Importante:'''
| |
| Antes de ejecutar este playbook, asegurarse de que <code>/etc/fstab</code> es correcto.
| |
| Un error puede provocar bloqueos del sistema.
| |
|
| |
| ---
| |
|
| |
| == Flujo recomendado de uso ==
| |
|
| |
| Un uso habitual de estos playbooks sería:
| |
|
| |
| # Ejecutar <code>check_mounts_cifs_nfs.yml</code> para conocer el estado actual
| |
| # Resolver incidencias detectadas
| |
| # Ejecutar <code>mount_shares.yml</code> para montar recursos necesarios
| |
| # Verificar nuevamente con <code>check_mounts.yml</code>
| |
|
| |
| ---
| |
|
| |
| == Ejecución de los playbooks ==
| |
|
| |
| Ejemplo de ejecución:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| ansible-playbook -i inventory check_mounts.yml
| |
| </syntaxhighlight>
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| ansible-playbook -i inventory check_mounts_cifs_nfs.yml
| |
| </syntaxhighlight>
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| ansible-playbook -i inventory mount_shares.yml
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| == Conceptos que se aprenden con estos playbooks ==
| |
|
| |
| * Uso de comandos del sistema desde Ansible
| |
| * Registro y análisis de salida
| |
| * Auditoría de infraestructura
| |
| * Separación de responsabilidades por playbook
| |
| * Automatización segura de tareas repetitivas
| |
|
| |
| ---
| |
|
| |
|
| == Nota final == | | == Nota final == |
Gestión de montajes NFS y CIFS con Ansible
Objetivo
Esta página describe el uso y la lógica de tres playbooks de Ansible orientados a la
verificación y gestión de montajes de red (NFS y CIFS) en sistemas Linux.
Los playbooks permiten:
- Auditar montajes existentes
- Identificar montajes por tipo y origen
- Montar shares definidos en
/etc/fstab
---
Playbooks incluidos
---
- hosts: all
become: true
vars:
fstab_host_pattern: "serverA|rkanserverB|serverC"
tasks:
- name: Obtener lista de puntos de montaje que coincidan con el source indicado
shell: mount -l|grep nfs |egrep '{{ fstab_host_pattern }}' | awk '{print $3}'
register: mount_output
- name: Mostrar los puntos de montaje encontrados
debug:
msg: "En {{ inventory_hostname }}, se encontraron estos puntos de montaje: {{ mount_output.stdout_lines }}"
when: mount_output.stdout_lines | length > 0
---
- hosts: all
become: true
vars:
fstab_host_pattern: "serverA|rkanserverB|serverC"
tasks:
- name: Obtener lista de puntos de montaje que coincidan con el source indicado
shell: mount -l|grep nfs |egrep '{{ fstab_host_pattern }}' | awk '{print $3}'
register: mount_output
- name: Mostrar los puntos de montaje encontrados
debug:
msg: "En {{ inventory_hostname }}, se encontraron estos puntos de montaje: {{ mount_output.stdout_lines }}"
when: mount_output.stdout_lines | length > 0
- name: Desmontar puntos de montaje detectados.
command: umount {{ item }}
with_items: "{{ mount_output.stdout_lines }}"
when: mount_output.stdout_lines | length > 0
ignore_errors: yes
---
- hosts: all
become: true
tasks:
- name: Montar todos los shares del fstab
command: mount -a
Cada playbook cubre un caso de uso distinto y puede utilizarse de forma independiente
o como parte de un flujo de trabajo.
Nota final
Estos playbooks están pensados como herramientas de apoyo al operador.
Para entornos más complejos se recomienda evolucionar hacia roles Ansible
y validaciones más avanzadas.