sgws_config
sgws_config
Роль и модули предназначены для настройки NetApp StorageGRID. Выполняемые задачи:
Игры сетки:
- Авторизация для получения токена сетки
- Установка подписанных SSL-сертификатов для управления API
- Установка подписанных SSL-сертификатов для управления хранилищем
- Настройка поставщика удостоверений
- Создание локальных или федеративных групп администраторов для сетки
- Создание локальных пользователей-администраторов для сетки
- Создание нового арендатора
Игры арендатора:
- Авторизация для получения токена арендатора (используя ранее созданный или существующий accountid)
- Настройка поставщика удостоверений для арендатора
- Создание локальных или федеративных групп для арендатора
- Создание локальных пользователей для арендатора
- Генерация S3 ключей для арендатора
- Создание бакета для арендатора
Примечание:
- Настройка поставщика удостоверений является предшествующим шагом для создания федеративных групп.
- Возможность создания федеральных и локальных групп в одной операции.
- Локальные пользователи для федеративной группы будут проигнорированы.
Требования
Переменные роли
Переменные, которые можно настроить, находятся в roles/sgws_config/vars/main.yml
. Пароли и учетные данные используются с помощью ansible-vault или читайте ниже. Другие переменные находятся в roles/sgws_config/vars/
для своих задач.
Установка подписанных SSL-сертификатов для управления API требует три файла mgmt_cert.pem
, mgmt_cert.key
и chain.pem
в roles/sgws_config/files
. Файлы SSL-сертификатов для хранения - это stor_cert.pem
, stor_cert.key
и chain.pem
. Я добавил вспомогательные скрипты читайте ниже.
Включите или выключите игры в roles/adlytaibi.sgws_config/tasks/main.yml
, закомментировав или раскомментировав соответствующие строки.
Поскольку есть предварительная работа, которую нужно выполнить перед использованием некоторых игр. Игры с SSL-сертификатом и поставщиком удостоверений по умолчанию закомментированы.
Зависимости
Нет зависимостей.
Как
Смотрите видео, если предпочитаете (на момент версии 1.1.x).
Пример плейбука
# ansible-playbook --vault-password-file ~/.passwd ~/.ansible/roles/adlytaibi.sgws_config/sgws_config.yml
PLAY [sgws] *********************************************************************************************************
TASK [adlytaibi.sgws_config : Получить токен авторизации сетки] *********************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Загрузить переменные группы администраторов] ***********************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать группы пользователей сетки и пользователей] ****************************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_group.yml для localhost
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_group.yml для localhost
TASK [adlytaibi.sgws_config : Проверить, существует ли группа "Разработчики"] ***************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать новую администратора "Разработчики" группу] *****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать пользователей из группы] *******************************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml для localhost
TASK [adlytaibi.sgws_config : Загрузить переменные локальных пользователей-администраторов] ****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать и установить пароль для администраторов] **********************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml для localhost
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml для localhost
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь разработчика"] *******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать нового администратора "Тестовый пользователь разработчика"] **********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для администратора "Тестовый пользователь разработчика"] ****************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь хранилища"] *********************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Создать нового администратора "Тестовый пользователь хранилища"] ************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для администратора "Тестовый пользователь хранилища"] ******************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли группа "Хранилище"] ******************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать новую администратора "Хранилище" группу] ********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать пользователей из группы] *******************************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_users.yml для localhost
TASK [adlytaibi.sgws_config : Загрузить переменные локальных пользователей-администраторов] ****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать и установить пароль для администраторов] **********************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml для localhost
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_user.yml для localhost
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь разработчика"] *******************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Создать нового администратора "Тестовый пользователь разработчика"] **********************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для администратора "Тестовый пользователь разработчика"] ****************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь хранилища"] *********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать нового администратора "Тестовый пользователь хранилища"] ************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для администратора "Тестовый пользователь хранилища"] ******************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Загрузить переменные учетной записи] ***************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Собрать список учетных записей] *****************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли учетная запись "Widgets Unlimited"] ****************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Создать новую учетную запись арендатора "Widgets Unlimited"] ********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Получить токен авторизации организации] **********************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Загрузить переменные для пользовательской группы арендатора] ***************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать пользовательские группы и пользователей арендатора] ************************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_group.yml для localhost
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_group.yml для localhost
TASK [adlytaibi.sgws_config : Проверить, существует ли группа арендатора "Разработчики"] ******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать новую группу арендатора "Разработчики"] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать пользователей из группы] *******************************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml для localhost
TASK [adlytaibi.sgws_config : Загрузить переменные локальных пользователей арендатора] *************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать и установить пароль для пользователей арендатора] *******************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml для localhost
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml для localhost
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь разработчика"] *******************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать нового пользователя арендатора "Тестовый пользователь разработчика"] *****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для пользователя арендатора "Тестовый пользователь разработчика"] ***********************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь приложений"] ************************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Создать нового пользователя арендатора "Тестовый пользователь приложений"] **********************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для пользователя арендатора "Тестовый пользователь приложений"] ****************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли группа арендатора "Приложения"] ************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать новую группу арендатора "Приложения"] *****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать пользователей из группы] *******************************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_users.yml для localhost
TASK [adlytaibi.sgws_config : Загрузить переменные локальных пользователей арендатора] *************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать и установить пароль для пользователей арендатора] *******************************************
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml для localhost
включено: /root/.ansible/roles/adlytaibi.sgws_config/tasks/sgws_org_user.yml для localhost
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь разработчика"] *******************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Создать нового пользователя арендатора "Тестовый пользователь разработчика"] *****************************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для пользователя арендатора "Тестовый пользователь разработчика"] ***********************************
пропущено: [localhost]
TASK [adlytaibi.sgws_config : Проверить, существует ли пользователь "Тестовый пользователь приложений"] ************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать нового пользователя арендатора "Тестовый пользователь приложений"] **********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Установить пароль для пользователя арендатора "Тестовый пользователь приложений"] ****************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Загрузить ключ доступа S3 для переменных арендатора] **********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Генерировать S3 ключи] *********************************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Директория назначения для хранения S3 ключей] ***********************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Сохранить сгенерированные S3 ключи] ***************************************************************
changed: [localhost]
TASK [adlytaibi.sgws_config : Загрузить бакет для переменных арендатора] *****************************************************
ok: [localhost]
TASK [adlytaibi.sgws_config : Создать бакет] **********************************************************************
ok: [localhost]
PLAY RECAP **********************************************************************************************************
localhost : ok=53 changed=1 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
Использование ansible-vault
Не стесняйтесь адаптировать под себя, здесь лишь для начала.
Файл ~/.passwd
содержит пароль для шифрования.
# echo -n NetApp123 > ~/.passwd
Используя указанный пароль для шифрования, вы можете зашифровать любое значение и интегрировать его в yml
файлы.
# echo -n netapp01|ansible-vault encrypt --vault-password-file ~/.passwd > vault.txt
# cat vault.txt
$ANSIBLE_VAULT;1.1;AES256
62383435316236346137383364373438623661653665363939616231376464643762333364663733
3430313661363761386536373135663733323764666561630a383736363562363864393037646531
61383566333332356339376561336239396634626433666434306566386134343031653339333531
3964356263643134610a346138616566643533346365326662343762346432386563393331306239
3835
Если вы хотите проверить зашифрованные значения.
# cat vault.txt|ansible-vault decrypt --vault-password-file ~/.passwd
Дешифрование прошло успешно
netapp01
Вспомогательные скрипты
Директория скриптов находится в ~/.ansible/roles/adlytaibi.sgws_config/files/scripts
, содержит файлы mgmt_ssl.cnf и stor_ssl.cnf для вашего удобства; измените их, чтобы они соответствовали вашему управленческому интерфейсу сетки и вашему шлюзу.
Измените каталог на место, где будут храниться SSL-ключи. Выполните два скрипта, которые создадут закрытый ключ и CSR.
# cd ~/.ansible/roles/adlytaibi.sgws_config/files
# scripts/mgmt_sign
# scripts/stor_sign
После того как вы подпишете SSL-сертификаты, убедитесь, что переименовали их в mgmt_cert.pem и stor_cert.pem и скопируйте их в директорию ~/.ansible/roles/adlytaibi.sgws_config/files
, вместе с цепочкой certnew.p7b
. Теперь вы можете выполнить сценарий bundle
, который конвертирует цепочку из p7b в pem.
# scripts/bundle
Это те файлы, которые будут использоваться Ansible.
# chain.pem CA пакет
# mgmt_cert.pem Подписанный сертификат для управления API
# mgmt_cert.key Закрытый ключ для указанного сертификата
# stor_cert.pem Подписанный сертификат для управления хранилищем
# stor_cert.key Закрытый ключ для указанного сертификата
Лицензия
GPL
Информация об авторе
- Adly Taibi
ansible-galaxy install adlytaibi/sgws_config