d_little.ansible_role_aix_lvm

ansible-role-aix-lvm

Nota: Este rol está en construcción activa. No se recomienda para su uso en producción aún.

Un rol de Ansible para gestionar Grupos de Volumen/Volúmenes Lógicos/Sistemas de Archivos en Servidores AIX. Actualmente está diseñado principalmente para crear y construir nuevos entornos; aunque es posible ampliar sistemas de archivos individuales, no es el más adecuado para esa tarea. Se destaca en tomar varios PVs y definir todos los VGs, LVs y FSs en el host objetivo. Este rol se basa en el excelente rol ansible-manage-lvm de @mrlesmithjr.

NOTA:

  • Puede utilizarse para crear y destruir Grupos LVM y volúmenes.
    • Actualmente no confiaría en él para manejar cambios de tamaño/modificaciones... no está completamente probado.
  • Diseñado para definir un entorno 'completo'; no está realmente diseñado para crear LV/FS ad-hoc, etc.
    • El caso de uso principal es definir todo el almacenamiento del servidor AIX en una construcción inicial.
  • No maneja (¿actualmente?) puntos de montaje Remotos/NFS.
  • Si tienes un sistema de archivos 'montado por encima', fallará ya que el módulo aix_filesystem no crea el directorio al montarlo.
    • es decir: /foo/ y /foo/bar/ son ambos sistemas de archivos y se crearon antes de ser montados.
    • /foo/ está montado, y el directorio /foo/bar/ está 'desaparecido'.
    • Al intentar montar /foo/bar/, fallará ya que el directorio no existe.

Requisitos

Los dispositivos/discos que sean miembros de la configuración LVM deben estar identificados antes de usar este rol.

NOTA:

  • Asegúrate de seleccionar los dispositivos/discos correctos.
  • Para crear un VG sin crear LVs, define lvname con el valor None, como en el ejemplo a continuación.

Estructura de Variables del Rol

Definimos una lista de diccionarios que describen los VG requeridos.

Variables Por defecto Comentarios
manage_lvm false Solo una marca de 'seguridad' para asegurar que este rol debe ser ejecutado. Si es false, LVM no será gestionado por este rol.
vglist (requerido) - Una lista de objetos vglist, definidos a continuación.

vglist

A continuación, una visión completa de las opciones de vglist. Los valores por defecto son de la documentación del módulo aix_lvg. NB: Los valores por defecto en este rol siempre usarán los valores por defecto del módulo; si el módulo aix_lvg cambia los valores por defecto, este documento puede no estar actualizado en cuanto a qué valores por defecto se están utilizando. Por favor, informa de un problema o PR si los valores aix_lvg cambian y este documento no se ha actualizado.

Variables Por defecto Comentarios
vgname (requerido) - Nombre del VG
disks (requerido) - Lista de nombres de dispositivos PV
force false Crear VG de manera forzada
ppsize - Tamaño de las Particiones Físicas del VG
state present Uno de absent o present. Si es absent, todos los FSs y LVs subyacentes deben ser removidos del sistema primero.
vg_type normal Tipo de VG; uno de big, normal, scalable
lvlist - Objeto lvlist, definido a continuación. Se pueden establecer cualquier número de estos.

lvlist

A continuación, una visión completa de las opciones de lvlist. Se puede definir cualquier número de estos dentro del objeto vglist anterior. Los valores por defecto son de la documentación del módulo aix_lvol y aix_filesystem. Si bien es posible crear un FS sin un LV existente, este rol toma un enfoque de 'mejor práctica' en el que el LV padre se crea antes de cada FS. NB: Los valores por defecto en este rol siempre usarán los valores por defecto del módulo; si los módulos aix_lvol o aix_filesystem cambian los valores por defecto, este documento puede no estar actualizado en cuanto a qué valores por defecto se están utilizando. Por favor, informa de un problema o PR si los valores por defecto cambian y este documento no se ha actualizado.

Variables Por defecto Comentarios
lvname (requerido) - Nombre del LV
lvstate present Uno de present o absent. Si es absent, se eliminará el LV y cualquier FS asociado.
lvcopies 1 Número de copias para el LV. Máximo es 3.
lvtype jfs2 Qué tipo de LV crear: [jfs2, jfs, paging, etc]
lvopts - Opciones de libre formato para pasar a mklv
lvpolicy maximum Establece la política de asignación de volumen físico, uno de [maximum, minimum].
lvpvs - Una lista de qué PVs utilizar en el VG del host.
lvsize - Tamaño del volumen lógico con una de las unidades [MGT].
lvstate present Uno de absent o present. Si es present, lvsize es requerido.
fsaccount_subsystem false Si el FS debe ser procesado por el subsistema de contabilidad. Bool.
fsattributes "agblksize='4096',isnapshot='no'" Atributos del sistema de archivos separados por comas.
fsauto_mount false El sistema de archivos se monta automáticamente al reiniciar el sistema.
fsfilesystem - El Punto de Montaje, directorio donde se montará el sistema de archivos. requerido si fsstate no es absent.
fsstate present Uno de [present, absent, mounted, unmounted]. Si deseas crear un LV sin FS adjunto, establece fsstate a absent.
fsmount_group - Grupo de montaje del FS.
fspermissions rw Permisos del FS; Uno de [rw, ro]

Dependencias

Ninguna

Ejemplos de Playbooks

VG pequeña y simple experimental

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_exp1
        disks:
          - hdisk4
        force: true
        lvlist:
          - lvname: lv_exp1
            lvcopies: 1
            lvsize: 5G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/exp1
          - lvname: lv_exp2
            lvcopies: 1
            lvsize: 10G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/exp2
  roles:
    - role: d-little.aixlvm
  tasks:

Un VG, Múltiples LV

Nota: Este es un caso de uso normal de este rol.

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test1
        disks:
          - hdisk10
          - hdisk11
        lvlist:
          - lvname: lv_test1_1
            lvcopies: 2
            lvsize: 5G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/test1_1
          - lvname: lv_test1_2
            lvcopies: 2
            lvsize: 10G
            fsauto_mount: true
            fsstate: mounted
            fsfilesystem: /mnt/test1_2
  roles:
    - role: d-little.aixlvm
  tasks:

VGs vacíos sin LVs

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test2_1
        disks:
          - hdisk20
          - hdisk21
        lvlist:
          None
      - vgname: vg_test2_2
        disks:
          - hdisk22
          - hdisk23
        lvlist:
          None
  roles:
    - role: d-little.aixlvm
  tasks:

Un VG, Un LV, Todas las Variables Definidas

Este no es un caso de uso normal, pero por si deseas cambiar todo.

---
- hosts: test-nodes
  vars:
    manage_lvm: true
    vglist:
      - vgname: vg_test3
        force: true
        disks:
          - hdisk30
          - hdisk31
        ppsize: 128
        state: present
        vg_type: big
        lvlist:
          - lvname: lv_test3
            lvstate: present
            lvcopies: 2
            lvopts: aaaa
            lvpolicy: maximum
            lvpvs: hdisk30, hdisk31
            lvsize: 50G
            lvstate: present
            fsaccount_subsystem: false
            fsattributes: aaaaa
            fsauto_mount: true
            fsfilesystem: /mnt/test3_1
            fsstate: mounted
            fsmount_group: aaaa
            fspermissions: rw
  roles:
    - role: ansible-manage-lvm
  tasks:

Autores

  • David Little - Trabajo inicial - d-little

Licencia

MIT

Agradecimientos

Acerca del proyecto

Role to manage LVM Groups/Logical Volumes on IBM AIX. Can be used to create, extend ~or resize~ VGs, LVs, and FSs.

Instalar
ansible-galaxy install d_little.ansible_role_aix_lvm
Licencia
mit
Descargas
103
Propietario