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
- Larry Smith Jr. - mrlesmithjr
- Ansible
Role to manage LVM Groups/Logical Volumes on IBM AIX. Can be used to create, extend ~or resize~ VGs, LVs, and FSs.
ansible-galaxy install d_little.ansible_role_aix_lvm