chrifey.ontap_volume_nfs_share

ontap-volume-nfs-share

Diese Rolle dient zur Verwaltung eines NFS-Exports, bestehend aus:

  • Flexvol mit Junction-Pfad
  • Qtree
  • Export-Richtlinie für das Qtree

Sie sollte auch ein Beispiel geben, wie groupvars gehandhabt werden können, um mehrere Volumes/Systeme zu verwalten.

Sicherheitsmodus

In einigen Diskussionen kamen wir zu dem Punkt, dass wir eine Art „Sicherheitsmodus“ einführen möchten, um das unbeabsichtigte Entfernen von Volumes oder Qtrees zu verhindern.

Wir haben grundlegend zwei Aufgaben-Dateien erstellt (no_safemode.yml und safemode.yml), die basierend auf einer Umgebungsvariable ausgewählt werden, die Sie an den Befehl ansible-playbook übergeben können.

Beispiel:

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

Wenn Sie ein Volume oder Qtree auf absent setzen, fragt der Sicherheitsmodus nach einer Bestätigung für jedes zu löschende Volume/Qtree. Ohne gesetzte Sicherheitsmodus-Variable wird keine Bestätigung angefragt und das Volume/Qtree wird gelöscht.

Anforderungen

So starten Sie:

Installieren Sie Ansible mit dem Paketmanager yum (RHEL, CentOS):

yum install ansible python-pip
pip install netapp-lib

Alternativ (installieren Sie python-virtualenv, z.B. mit yum, und verwenden Sie pip in diesem virtualenv):

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

Rollenvariablen

Wir empfehlen, groupvars zu erstellen, um umgebungsspezifische Parameter wie Anmeldeinformationen usw. festzulegen.

Zuerst erstellen Sie eine Inventardatei inventory/site/hosts:

[netapp]
localhost netapp_user=USERNAME netapp_password=SECRET

Da wir Anmeldeinformationen in dieser Datei speichern, empfehlen wir dringend, diese Datei mit ansible-vault zu verschlüsseln.

Sie können die folgenden Befehle verwenden, um die Datei zu verschlüsseln:

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

Zweitens erstellen Sie eine Variablen-Datei, um Ihre Umgebung zu konfigurieren:

Das folgende Beispiel zeigt inventory/site/group_vars/all.yml, das mit der Rolle ontap-volume-nfs-share in diesem Repository verwendet werden soll:

# Umgebungsspezifische Variablen
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' }

Damit können Sie mehrere Volumes in einer groupvars-Datei verwalten (einfach mehr Zeilen in der Liste netapp_volumes oder netapp_qtrees hinzufügen). Sie könnten auch verschiedene „Standorte“ mit unterschiedlichen groupvars erstellen, z.B. für spezifische Anwendungen, die eine Untermenge von Volumes/Qtrees benötigen.

Abhängigkeiten

Es gibt keine abhängigen Rollen.

Beispiel-Playbook

Das folgende Beispiel zeigt ein einfaches Playbook, das die Rolle ontap-volume-nfs-share nutzt:

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

Sie können das Playbook dann so ausführen (die Option --ask-vault-pass fragt nach dem Passwort der zuvor verschlüsselten Datei):

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

Lizenz

BSD

Autoreninformation

Basierend auf einem Hackathon mit:

  • Sven Mundschenk
  • Stefan Gaertner
  • Steffen Knoth
  • Christian Fey
Über das Projekt

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

Installieren
ansible-galaxy install chrifey.ontap_volume_nfs_share
GitHub Repository
Lizenz
Unknown
Downloads
80
Besitzer