chrifey.ontap_volume_nfs_share

ontap-volume-nfs-share

Ten rol ma na celu zarządzanie eksportem NFS, który składa się z:

  • flexvol z ścieżką łączenia
  • qtree
  • polityki eksportu dla qtree

Powinien również podać przykład, jak można zarządzać grupami zmiennych, aby obsługiwać wiele wolumenów/systemów.

Tryb bezpieczny

Podczas kilku dyskusji doszliśmy do wniosku, że chcemy wprowadzić pewnego rodzaju "tryb bezpieczny", aby zapobiegać przypadkowemu usunięciu wolumenów lub qtree.

Podzieliliśmy się na dwa pliki z zadaniami (no_safemode.yml i safemode.yml), które są wybierane na podstawie zmiennej środowiskowej, którą można przekazać do polecenia ansible-playbook.

Przykład:

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

Jeśli określisz, że wolumen lub qtree ma być nieobecny, tryb bezpieczny poprosi o potwierdzenie dla każdego usuwanego wolumenu/qtree. Jeśli zmienna trybu bezpiecznego nie jest ustawiona, nie zada pytania o potwierdzenie i usunie wolumen/qtree.

Wymagania

Jak zacząć:

Zainstaluj Ansible za pomocą menedżera pakietów yum (RHEL, CentOS):

yum install ansible python-pip
pip install netapp-lib

alternatywnie (zainstaluj python-virtualenv, np. przez yum i użyj pip w tej wirtualnej strefie):

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

Zmienne roli

Zalecamy stworzenie grup zmiennych, aby określić specyficzne dla twojego środowiska parametry, np. dane uwierzytelniające...

Najpierw utwórz plik inwentaryzacyjny inventory/site/hosts:

[netapp]
localhost netapp_user=USERNAME netapp_password=SECRET

Ponieważ przechowujemy dane do logowania w tym pliku, zdecydowanie sugerujemy jego zaszyfrowanie za pomocą ansible-vault.

Możesz użyć poniższych poleceń, aby zaszyfrować plik:

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

Następnie utwórz plik zmiennych, aby skonfigurować swoje środowisko:

Poniższy przykład pokazuje, jak powinien wyglądać inventory/site/group_vars/all.yml, używany z rolą ontap-volume-nfs-share w tym repozytorium:

# Specyficzne zmienne dla środowiska
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' }

Dzięki temu możesz zarządzać wieloma wolumenami w jednym pliku grup zmiennych (wystarczy dodać więcej linii w liście netapp_volumes lub netapp_qtrees). Możesz również utworzyć różne "lokalizacje" z różnymi grupami zmiennych, np. dla konkretnych aplikacji, które potrzebują podzestawu wolumenów/qtrees.

Zależności

Nie ma zależnych ról.

Przykładowy playbook

Poniższy przykład pokazuje prosty playbook wykorzystujący rolę ontap-volume-nfs-share:

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

Możesz następnie uruchomić playbook w ten sposób (opcje --ask-vault-pass proszą o hasło do wcześniej zaszyfrowanego pliku):

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

Licencja

BSD

Informacje o autorze

Na podstawie hackathonu z udziałem:

  • Sven Mundschenk
  • Stefan Gaertner
  • Steffen Knoth
  • Christian Fey
O projekcie

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

Zainstaluj
ansible-galaxy install chrifey.ontap_volume_nfs_share
Licencja
Unknown
Pobrania
80
Właściciel