Первичная настройка IT систем часто требует выполнения очень большого объёма настроек. Создание частного облака на ManageIQ – очень хороший пример. Если настройка инфраструктуры в ManageIQ – это разовая задача, обычно не требующая автоматизации, то создание сотен команд, их проектов, настройка квот и прав – задача не для ручного выполнения. К счастью, все функции ManageIQ доступны через REST API запросы.
В нашей инфраструктуре уже используется оркестратор VMware Aria Automation Orchestrator, ему доступен список ИТ команд и выделенных им ресурсных квот. Поэтому автоматизацию рутинных задач мы реализовали на стороне vRO. Предлагаем пакет процессов для создания тенантов и проектов ManageIQ, а также назначения им квот и управления тегами. Данный пакет будет постепенно дополняться новыми процессами.
Пакет интеграции с ManageIQ
v0.6.1
Исчерпывающая документация по ManageIQ API доступна на официальном сайте: https://www.manageiq.org/docs/api.
Текущая версия пакета включает набор процессов CRUD для управления следующими объектами ManageIQ:
- тенанты и проекты;
- квоты ресурсов;
- категории тегов;
- теги.
Процесс выполнения запроса
Пакет поддерживает одновременную работу с несколькими серверами ManageIQ, каждой инсталляции MIQ соответствует отдельный конфигурационный элемент в /Library/ManageIQ/. У всех процессов есть специальный входной параметр configName, который и определяет имя конфигурационного элемента с настройками хоста ManageIQ.
Основной процесс, который выполняет все запросы к API ManageIQ называется «Invoke a REST operation (MIQ)». ManageIQ поддерживает два способа аутентификации: базовую и с использованием токенов. Наш процесс использует рекомендуемый разработчиком способ аутентификации – токены.
Процесс «Invoke a REST operation (MIQ)»:
- находит конфигурационный элемент по его имени;
- получает REST-хост и токен из конфигурационного элемента;
- находит на REST-хосте объект REST:RESTOperation по его имени;
- отправляет запрос на REST-сервер;
- получает ответ сервера и проверяет код статуса;
- получает новый токен доступа, если срок действия токена истёк и повторяет отправку запроса;
- в случае ошибки формирует json-строку с ответом сервера.
Подготовка пакета vRO к работе
1. Установка пакета в vRealize Orchestrator:
- скачайте пакет ru.zabedu.miq.package;
- импортируйте пакет в оркестратор через вкладку Packages;
- проверьте, что процессы и конфигурационный элемент успешно импортированы;
2. Регистрация REST-хоста ManageIQ:
- используйте стандартный процесс «Add a REST host» для регистрации сервера ManageIQ;
- выберите тип аутентификации: «Host’s authentication type» = «NONE»;
3. Конфигурирование:
Пакет поддерживает одновременную работу с несколькими серверами ManageIQ, сделайте нужное количество копий имеющегося конфигурационного элемента manageiq_test, все они должны располагаться в Library/ManageIQ/. Для каждой конфигурации ManageIQ необходимо сделать:
- Выбор основного REST-хоста: укажите хост MIQ в конфигурационном элементе в переменной host;
- Запуск процесса регистрации REST-операций: «Add REST operations (MIQ)»;
- Сохранение учетных данных ManageIQ: в конфигурационном элементе в атрибуте credentials необходимо указать строку ‘username:password’ закодированную в base64:
$ echo -n 'username:password' | base64
- Получение токена аутентификации: запустите процесс “Update access token”.
Загрузка пакета vRO
Пишите вопросы и предложения по дальнейшей разработке пакета.