Организация автоматизированного деплоя виртуальных машин с использованием связки Jira и AWX позволяет значительно ускорить процесс предоставления инфраструктурных мощностей. Пользователи создают запросы в Jira, указывая необходимые параметры виртуальной машины через настраиваемые поля. Скрипты ScriptRunner в Jira при переходе тикета в статус «в работе» отправляют API-запрос в AWX.
AWX, в свою очередь, запускает workflow, который включает в себя ряд задач: добавление хоста в инвентори AWX, деплой ВМ с использованием Terraform (включая настройку сети, ресурсов и, в случае Windows, авторизацию в домен), а также последующие ansible шаблоны для настройки системы, такие как разметка и монтирование дополнительных дисков. Для корректной авторизации в домен используется ansible vault с учетными данными.
Деплой осуществляется с использованием двух основных шаблонов Terraform: один для Ubuntu в cloud и второй для Windows Server в vSphere. Шаблон для Ubuntu настраивает сеть и имя хоста, в то время как шаблон для Windows Server позволяет выбирать datastore или datacluster и использовать возможности кастомизации для авторизации в домен. Параметры для Terraform передаются через переменные, получаемые из Jira-тикета.
После завершения деплоя AWX отправляет webhook на локальный flask-сервер, который обновляет статус Jira-тикета, используя issue_key, переданный из Jira. Такой подход упрощает и ускоряет процесс развертывания, минимизируя ручное вмешательство. Рассматривается возможность реализации динамических полей в Jira для дальнейшего упрощения процесса.
Изображение носит иллюстративный характер
AWX, в свою очередь, запускает workflow, который включает в себя ряд задач: добавление хоста в инвентори AWX, деплой ВМ с использованием Terraform (включая настройку сети, ресурсов и, в случае Windows, авторизацию в домен), а также последующие ansible шаблоны для настройки системы, такие как разметка и монтирование дополнительных дисков. Для корректной авторизации в домен используется ansible vault с учетными данными.
Деплой осуществляется с использованием двух основных шаблонов Terraform: один для Ubuntu в cloud и второй для Windows Server в vSphere. Шаблон для Ubuntu настраивает сеть и имя хоста, в то время как шаблон для Windows Server позволяет выбирать datastore или datacluster и использовать возможности кастомизации для авторизации в домен. Параметры для Terraform передаются через переменные, получаемые из Jira-тикета.
После завершения деплоя AWX отправляет webhook на локальный flask-сервер, который обновляет статус Jira-тикета, используя issue_key, переданный из Jira. Такой подход упрощает и ускоряет процесс развертывания, минимизируя ручное вмешательство. Рассматривается возможность реализации динамических полей в Jira для дальнейшего упрощения процесса.