Diferencia entre revisiones de «Gestión de montajes NFS»

De jagfloriano.com
Ir a la navegaciónIr a la búsqueda
 
(No se muestran 6 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
== Gestión de montajes NFS y CIFS con Ansible ==
Estos playbooks están pensados como herramientas de apoyo al operador.
 
Para entornos más complejos se recomienda evolucionar hacia roles Ansible
=== Objetivo ===
y validaciones más avanzadas.
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:
Los playbooks permiten:
* Auditar montajes existentes
* Auditar montajes existentes
* Identificar montajes por tipo y origen
* Identificar montajes por tipo y origen
* Desmontar shares definidos en <code>/etc/fstab</code>
* Montar shares definidos en <code>/etc/fstab</code>
* Montar shares definidos en <code>/etc/fstab</code>
---


== Playbooks incluidos ==
== Playbooks incluidos ==


* <code>check_mounts_nfs.yml</code>
* <code>check_mounts_nfs.yml</code>
<syntaxhighlight lang="yml">
<syntaxhighlight lang="ini">
---
---
- hosts: all
- hosts: all
Línea 36: Línea 33:


* <code>umount_NFS.yml</code>
* <code>umount_NFS.yml</code>
<syntaxhighlight lang="yml">
<syntaxhighlight lang="ini">
---
---
- hosts: all
- hosts: all
Línea 62: Línea 59:
* <code>mount_shares.yml</code>
* <code>mount_shares.yml</code>


<syntaxhighlight lang="yml">
<syntaxhighlight lang="ini">
---
---
- hosts: all
- hosts: all
Línea 74: Línea 71:
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 ==
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.

Revisión actual - 17:38 2 ene 2026

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.

Los playbooks permiten:

  • Auditar montajes existentes
  • Identificar montajes por tipo y origen
  • Desmontar shares definidos en /etc/fstab
  • Montar shares definidos en /etc/fstab

Playbooks incluidos[editar]

  • check_mounts_nfs.yml
---
- 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


  • umount_NFS.yml
---
- 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
  • mount_shares.yml
---
- 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.