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 с помощью пакетного менеджера 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

Информация об авторе

Основано на хакатоне с участием:

  • Свен Мундшенк
  • Штефан Гертнер
  • Штеффен Кнот
  • Кристиан Фей
О проекте

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

Установить
ansible-galaxy install chrifey/ansible-role-ontap-volume-nfs-share
Лицензия
Unknown
Загрузки
65
Владелец