chrifey.ontap_volume_nfs_share

partage-nfs-volume-ontap

Ce rôle est destiné à gérer un export NFS, consistant en :

  • flexvol avec chemin de jonction
  • qtree
  • politique d'exportation sur qtree

Il devrait également donner un exemple de la manière dont les variables de groupe peuvent être gérées pour gérer plusieurs volumes/systèmes.

Mode de sécurité

Lors de quelques discussions, nous avons décidé d'introduire un "mode de sécurité" pour éviter toute suppression involontaire de volumes ou de qtrees.

Nous avons essentiellement créé deux fichiers de tâches (no_safemode.yml et safemode.yml) qui sont choisis en fonction d'une variable d'environnement que vous pouvez passer à la commande ansible-playbook.

Exemple :

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

Si vous spécifiez qu'un volume ou un qtree doit être absent, le mode de sécurité demandera une confirmation pour chaque volume/qtree qui sera supprimé. Sans la variable de mode de sécurité définie, il ne demandera pas de confirmation et supprimera le volume/qtree.

Exigences

Comment commencer :

Installez Ansible avec le gestionnaire de paquets yum (RHEL, CentOS) :

yum install ansible python-pip
pip install netapp-lib

alternativement (installez python-virtualenv, par exemple avec yum, et utilisez pip dans cet environnement virtuel) :

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

Variables de rôle

Nous vous conseillons de créer des variables de groupe pour spécifier vos paramètres spécifiques à l'environnement, par exemple les identifiants, ...

Commencez par créer un fichier d'inventaire inventory/site/hosts :

[netapp]
localhost netapp_user=USERNAME netapp_password=SECRET

Puisque nous stockons les identifiants de connexion dans ce fichier, nous vous recommandons fortement de le crypter avec ansible-vault

Vous pouvez utiliser les commandes suivantes pour crypter le fichier :

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

Ensuite, créez un fichier de variables pour configurer votre environnement :

L'exemple suivant montre inventory/site/group_vars/all.yml à utiliser avec le rôle partage-nfs-volume-ontap dans ce dépôt :

# Variables spécifiques à l'environnement
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' }

Avec cela, vous pouvez gérer plusieurs volumes dans un fichier de variables de groupe (il suffit d'ajouter plus de lignes dans la liste netapp_volumes ou netapp_qtrees). Vous pourriez également créer différents "sites" avec des variables de groupe différentes, par exemple pour des applications spécifiques qui nécessitent un sous-ensemble de volumes/qtrees.

Dépendances

Il n'y a pas de rôles dépendants.

Exemple de Playbook

L'exemple suivant montre un playbook simple utilisant le rôle partage-nfs-volume-ontap :

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

Vous pouvez alors exécuter le playbook comme ceci (les options --ask-vault-pass demandent le mot de passe du fichier crypté précédemment) :

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

Licence

BSD

Informations sur l'auteur

Basé sur un hackathon avec :

  • Sven Mundschenk
  • Stefan Gaertner
  • Steffen Knoth
  • Christian Fey
À propos du projet

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

Installer
ansible-galaxy install chrifey.ontap_volume_nfs_share
Licence
Unknown
Téléchargements
80
Propriétaire