ontap_volume_nfs_share
онтоп-том-нфс-шар
Эта роль предназначена для управления NFS экспортом, который включает в себя:
- flexvol с путём соединения
- qtree
- политику экспорта на qtree
Также должно быть дано пример, как можно обрабатывать groupvars для управления несколькими томами/системами.
Режим безопасности
В ходе нескольких обсуждений мы пришли к выводу, что хотели бы ввести некий «режим безопасности», чтобы предотвратить случайное удаление томов или qtree.
В основном мы создали два файла задач (no_safemode.yml и safemode.yml), которые выбираются на основе переменной окружения, которую можно передать команде ansible-playbook
.
Пример:
ansible-playbook -i inventory site.yml -e safemode=true
Если вы указываете том или qtree как absent
, режим безопасности запросит подтверждение для каждого тома/qtree, который будет удалён. Если переменная safemode не установлена, то подтверждение запрашиваться не будет и том/qtree будет удалён.
Требования
- Необходимо установить Ansible.
- NetApp Lib
Как начать:
Установите ansible с помощью пакетного менеджера yum (RHEL, CentOS):
yum install ansible python-pip
pip install netapp-lib
альтернативный способ (установите python-virtualenv, например, с помощью yum и используйте pip внутри этого виртуального окружения):
yum install python-virtualenv
virtualenv ansible
source ansible/bin/activate
pip install ansible
pip install netapp-lib
Переменные роли
Мы рекомендуем создать groupvars для указания специфичных для вашей среды параметров, например, учетных данных...
Сначала создайте файл инвентаризации inventory/site/hosts
:
[netapp]
localhost netapp_user=USERNAME netapp_password=SECRET
Поскольку мы храним учетные данные для входа в этот файл, настоятельно рекомендуем зашифровать этот файл с помощью ansible-vault
Вы можете использовать следующие команды для шифрования файла:
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
Во-вторых, создайте файл vars для настройки вашей среды:
Следующий пример демонстрирует inventory/site/group_vars/all.yml
, который будет использоваться с ролью онтоп-том-нфс-шар
в этом репозитории:
# Специфические для среды переменные
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' }
С помощью этого вы можете управлять несколькими томами в одном файле groupvars (просто добавьте больше строк в список netapp_volumes или netapp_qtrees). Вы также можете создать разные «сайты» с разными groupvars, например, для конкретных приложений, которым нужны подмножества томов/qtrees.
Зависимости
Зависимых ролей нет.
Пример Playbook
Следующий пример показывает простой playbook, использующий роль онтоп-том-нфс-шар
:
---
- hosts: localhost
connection: local
gather_facts: no
roles:
- онтоп-том-нфс-шар
Вы можете запустить playbook следующим образом (опция --ask-vault-pass
запрашивает пароль ранее зашифрованного файла):
ansible-playbook --ask-vault-pass -i inventory/site/hosts playbooks/site.yml
Лицензия
BSD
Информация об авторе
Основано на хакатоне с участием:
- Свен Мундшенк
- Штефан Гертнер
- Штеффен Кнот
- Кристиан Фей
ansible-galaxy install chrifey/ansible-role-ontap-volume-nfs-share