chrifey.ontap_volume_nfs_share

ontap-volume-nfs-share

Este rol está diseñado para gestionar una exportación NFS, que consiste en:

  • flexvol con ruta de unión
  • qtree
  • política de exportación en qtree

También debe dar un ejemplo de cómo se pueden manejar las groupvars para gestionar múltiples volúmenes/sistemas.

Modo Seguro

Durante algunas discusiones, llegamos a la conclusión de que nos gustaría introducir algún tipo de "modo seguro" para prevenir la eliminación no intencionada de volúmenes o qtrees.

Básicamente, creamos dos archivos de tareas (no_safemode.yml y safemode.yml) que se eligen según una variable de entorno que puedes pasar al comando ansible-playbook.

Ejemplo:

ansible-playbook -i inventory site.yml -e safemode=true

Si especificas un volumen o qtree como ausente, el modo seguro pedirá una confirmación para cada volumen/qtree que se eliminará. Sin la variable de modo seguro establecida, no pedirá confirmación y eliminará el volumen/qtree.

Requisitos

Cómo empezar:

Instala ansible con el administrador de paquetes yum (RHEL, CentOS):

yum install ansible python-pip
pip install netapp-lib

Alternativa (instalar python-virtualenv, por ejemplo, con yum y usar pip dentro de este virtualenv):

yum install python-virtualenv
virtualenv ansible
source ansible/bin/activate
pip install ansible
pip install netapp-lib

Variables del Rol

Sugerimos crear groupvars para especificar los parámetros específicos de tu entorno, por ejemplo, credenciales, ...

Primero, crea un archivo de inventario inventory/site/hosts:

[netapp]
localhost netapp_user=USERNAME netapp_password=SECRET

Dado que almacenamos credenciales de inicio de sesión en este archivo, sugerimos encarecidamente cifrar este archivo con ansible-vault.

Puedes usar los siguientes comandos para cifrar el archivo:

ansible-vault encrypt --ask-vault-pass inventory/site/hosts
ansible-vault view --ask-vault-pass inventory/site/hosts
ansible-vault edit --ask-vault-pass inventory/site/hosts

Segundo, crea un archivo de variables para configurar tu entorno:

El siguiente ejemplo muestra inventory/site/group_vars/all.yml que se utilizará con el rol ontap-volume-nfs-share en este repositorio:

# Variables específicas del entorno
netapp_volumes:
  - { state: 'present', nacluster: 'cluster1.localdomain', vserver: 'vserver1', flexvol: 'flexvol1', space_guarantee: 'none', percent_snapshot_space: '5', aggregate: 'aggr1', size: '10', unit: 'gb', exportpolicy: 'default'  }

netapp_qtrees:
  - { state: 'present', nacluster: 'cluster1.localdomain', vserver: 'vserver1', qtree: 'qtree1', flexvol: 'flexvol1',
      exportpolicy: 'db-nodes', ro_rule: 'sys', rw_rule: 'sys', super_user_security: 'sys', client_match: '0.0.0.0/0' }

Con esto puedes gestionar múltiples volúmenes en un solo archivo de groupvars (solo agrega más líneas en la lista de netapp_volumes o netapp_qtrees). También podrías crear diferentes "sitios" con diferentes groupvars, por ejemplo, para aplicaciones específicas que necesitan un subconjunto de volúmenes/qtrees.

Dependencias

No hay roles dependientes.

Ejemplo de Playbook

El siguiente ejemplo muestra un playbook simple que utiliza el rol ontap-volume-nfs-share:

---
- hosts: localhost
  connection: local
  gather_facts: no
  roles:
   - ontap-volume-nfs-share

Luego puedes ejecutar el playbook así (la opción --ask-vault-pass solicita la contraseña del archivo cifrado previamente):

ansible-playbook --ask-vault-pass -i inventory/site/hosts playbooks/site.yml

Licencia

BSD

Información del Autor

Basado en un hackathon con:

  • Sven Mundschenk
  • Stefan Gaertner
  • Steffen Knoth
  • Christian Fey
Acerca del proyecto

Role to configure nfs exports (volume, qtree, policy)

Instalar
ansible-galaxy install chrifey.ontap_volume_nfs_share
Licencia
Unknown
Descargas
80
Propietario