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
- Ansible musi być zainstalowany.
- NetApp Lib
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
ansible-galaxy install chrifey.ontap_volume_nfs_share