#jenkins #terraform #vmware
Вопрос:
нашим разработчикам и QAs необходимо автоматически развертывать инфраструктуру нескольких виртуальных машин в кластере vmware для целей тестирования и разработки. Каждый разработчик или специалист по контролю качества может иметь одну или несколько инфраструктур, управляемых исключительно им. Нам нужно запустить развертывание либо специально, либо автоматически (обычно по ночам).
Примеры использования:
- Разработчик A хочет развернуть новую инфраструктуру с помощью текущей сборки приложения.
- Разработчик B хочет повторно развернуть уже существующую инфраструктуру с помощью новой сборки
- Разработчик C хочет уничтожить свою инфраструктуру, которая ему больше не нужна
- Разработчик А хочет развернуть другую инфраструктуру с другой сборкой параллельно с первой.
Мы хотели бы использовать для этого Terraform, но есть проблема с управлением несколькими файлами состояний. Также мы хотели бы видеть текущие развертывания и управлять ими (например, запустить операцию повторного развертывания или уничтожения). У нас была идея создать задание Дженкинса и хранить файлы состояния в разных каталогах в рабочей области, но оно не является удобным для пользователя и надежным. Мы предпочитаем использовать инструмент, который может «обернуть» Терраформу и сделать это за нас. Но, к сожалению, мы не можем найти ничего подходящего. Мы проверили https://scalr.com/, http://www.glitterlabs.com/terraform_ui/index.html или https://terragrunt.gruntwork.io/. Ни один из них не подходил.
Можете ли вы порекомендовать какой-нибудь инструмент для этого? Или хороший подход, как это сделать с помощью jenkins (gitlab)?
Комментарии:
1. Если вы используете Gitlab, есть ли причина, по которой вам нужно использовать здесь Дженкинса, а не Gitlab CI?
2. Конвейер Дженкинса имеет гораздо лучшую поддержку Terraform и другого программного обеспечения в целом, но, вероятно, для этого решения есть множество других неописанных причин.
3. @ydaetskcoR вы не можете легко вызвать gitlab CI кнопкой и указать название состояния, которое вы хотите изменить. У Дженкинса лучший графический интерфейс для предоставления пользовательских параметров
4. Рабочие пространства Terraform являются официальным ответом на эту проблему — ответом может быть создание новой рабочей области для каждого разработчика или для каждой ветви, хотя для этого может потребоваться изменить некоторые из ваших кодов terraform на шаблон в именах рабочих областей.
5. Я спрашиваю, потому что в Gitlab CI есть шаблон для сред обзора, которые мы широко используем именно для такого рода вещей.