Для проектов, которые включают в себя конфигурации Terraform, требуется доступ к среде выполнения Terraform, интегрируемой с локальной версией Automation Assembler.

Добавление среды выполнения Terraform

Среда выполнения состоит из кластера Kubernetes, выполняющего команды Terraform CLI для осуществления запрошенных операций. Кроме того, среда выполнения собирает журналы и возвращает результаты команд Terraform CLI.

Для локальной версии VMware Aria Automation требуется, чтобы пользователи настроили собственный кластер Kubernetes в среде выполнения Terraform. Для каждой организации поддерживается только одна среда выполнения Terraform. Все развертывания Terraform для этой организации используют одну и ту же среду выполнения.

Примечание:

Для выполнения команд и состояний Terraform необходима среда выполнения Terraform, которая функционирует в K8s. При создании интеграции Terraform в локальном экземпляре VMware Aria Automation можно выбрать управляемый кластер k8 (представляющий собой кластер k8s, которым уже управляет VMware Aria Automation) или внешний кластер k8s (представляющий собой кластер k8s, которым VMware Aria Automation не управляет) и пространство имен, в котором будут созданы модули Terraform. В случае использования внешнего кластера необходимо предоставить доступ Kubeconfig к кластеру k8s для целевого объекта среды выполнения Terraform. Kubeconfig — это стандарт k8s. Для него права администратора Kubeconfig не требуются. Можно использовать учетную запись службы с минимальными разрешениями, например на запуск модулей в пространстве имен и на создание Kubeconfig для использования с интеграцией среды выполнения Terraform для VMware Aria Automation.

  1. Убедитесь, что у вас есть кластер Kubernetes, в котором можно запустить интерфейс командной строки Terraform.
    • Все пользователи могут предоставлять файл kubeconfig для запуска интерфейса командной строки Terraform в неуправляемом кластере Kubernetes.
    • Пользователи лицензии уровня Enterprise могут запускать интерфейс командной строки Terraform в кластере Kubernetes под управлением VMware Aria Automation.

      В Automation Assembler перейдите в раздел Инфраструктура > Ресурсы > Kubernetes и подтвердите, что у вас есть кластер Kubernetes. Если у вас нет такого кластера, см. инструкции по его добавлению в Работа с Kubernetes в Automation Assembler.

  2. Если кластер Kubernetes только что добавлен или изменен, дождитесь завершения сбора данных.

    Процесс сбора данных извлекает список пространств имен и другие сведения и может занимать до 5 минут в зависимости от поставщика.

  3. После завершения сбора данных выберите Инфраструктура > Подключения > Интеграции > Добавить интеграцию, а затем карточку Среда выполнения Terraform.
  4. Введите значения параметров.
    Рис. 1. Пример интеграции среды выполнения Terraform
    Пример интеграции среды выполнения Terraform для пользователей лицензий уровня Advanced
    Настройка Описание
    Имя Назначьте для интеграции среды выполнения уникальное имя.
    Описание Укажите, для чего предназначена интеграция.
    Интеграция среды выполнения Terraform:
    Тип среды выполнения (только для уровня Enterprise) Пользователи лицензии уровня Enterprise могут выбрать, запускать ли интерфейс командной строки Terraform в кластере Kubernetes под управлением VMware Aria Automation или в неуправляемом кластере.
    Kubernetes kubeconfig (все пользователи)

    Для неуправляемого кластера Kubernetes: вставьте все содержимое файла kubeconfig кластер, предназначенное для внешнего кластера.

    Сведения об использовании внешней среды выполнения Kubernetes с прокси-сервером см. в разделе Добавление поддержки прокси-сервера.

    Этот параметр доступен для всех пользователей.

    Кластер Kubernetes (только для уровня Enterprise)

    Для Kubernetes под управлением VMware Aria Automation выберите кластер, в котором будет запускаться интерфейс командной строки Terraform.

    Кластер и соответствующий файл kubeconfig должны быть доступны. Доступ к kubeconfig можно проверить с помощью GET в /cmx/api/resources/k8s/clusters/{clusterId}/kube-config.

    Этот параметр доступен только для лицензий уровня Enterprise.

    Пространство имен Kubernetes Выберите пространство имен, которое будет использоваться в кластере для создания модулей, которые запускают Terraform CLI.
    Параметры контейнера среды выполнения:
    Изображение Введите путь к образу контейнера версии Terraform, которую необходимо запустить.
    Примечание: Кнопка «Проверить» не позволяет проверить наличие образа контейнера.
    Требование к ЦП Укажите объем ЦП для выполнения контейнеров. Значение по умолчанию — 250 millicore.
    Ограничение ЦП Укажите максимально допустимый объем ЦП для выполнения контейнеров. Значение по умолчанию — 250 millicore.
    Требование к памяти Укажите объем памяти для выполнения контейнеров. Значение по умолчанию — 512 МБ.
    Ограничение памяти Укажите максимально допустимый объем памяти для выполнения контейнеров. Значение по умолчанию — 512 МБ.
  5. Щелкните ПРОВЕРИТЬ и при необходимости измените значения параметров.
  6. Нажмите кнопку ДОБАВИТЬ.

Настройки параметров кэшируются. После добавления интеграции можно изменить такие параметры, как кластер или пространство имен, но для обнаружения изменений и запуска Terraform CLI с новыми параметрами может потребоваться до 5 минут.

Устранение неполадок среды выполнения Terraform

Некоторые проблемы при развертывании конфигурации Terraform могут быть связаны с интеграцией среды выполнения.

Проблема Причина Разрешение
Не удается выполнить проверку, выводится сообщение о недопустимости пространства имен. Кластер был изменен, но оставлено предыдущее пространство имен в пользовательском интерфейсе. После изменения выбранного кластера всегда снова выбирайте пространство имен.
Раскрывающийся список пространств имен пуст или не содержит новые добавленные пространства имен. Сбор данных для кластера не завершен. Сбор данных занимает до 5 минут после ввода или изменения кластера и до 10 минут при вводе или изменении пространства имен. В случае нового кластера с существующими пространствами имен подождите 5 минут до завершения сбора данных.

В случае нового пространства имен в существующем кластере подождите 10 минут до завершения сбора данных.

Если проблема сохраняется, удалите кластер и снова добавьте его в разделе Инфраструктура > Ресурсы > Kubernetes.

Контейнеры Terraform CLI создаются в предыдущем кластере, предыдущем пространстве имен или с предыдущими настройками среды выполнения даже после обновления учетной записи интеграции. Клиент API-интерфейса Kubernetes, используемый системой VMware Aria Automation, кэшируется в течение 5 минут. Чтобы изменения вступили в силу, может потребоваться до 5 минут.
При выполнении операции проверки или развертывания Terraform произошла ошибка; сообщается, что Kubeconfig недоступен. Иногда эти ошибки возникают из-за того, что кластер недоступен из VMware Aria Automation.

В других случаях учетные данные пользователя, маркеры или сертификаты являются недействительными.

Ошибка Kubeconfig может возникать по различным причинам. Для устранения неполадок может потребоваться обращение в службу технической поддержки.

Добавление поддержки прокси-сервера

Чтобы кластер внешней среды выполнения Kubernetes мог подключаться через прокси-сервер, выполните следующие действия.

  1. Войдите на сервер внешнего кластера Kubernetes.
  2. Создайте пустую папку.
  3. В новой папке добавьте в новый файл с именем Dockerfile следующие строки.
    FROM projects.registry.vmware.com/vra/terraform:latest as final
    ENV https_proxy=protocol://username:password@proxy_host:proxy_port
    ENV http_proxy=protocol://username:password@proxy_host:proxy_port
    ENV no_proxy=.local,.localdomain,localhost
  4. Измените значения заполнителя так, чтобы переменные среды https_proxy и http_proxy содержали параметры прокси-сервера, используемого для доступа к Интернету.

    Параметр protocol будет иметь значение http или https, в зависимости от того, какой протокол использует ваш прокси-сервер, и может отличаться от имени переменной среды https_proxy или http_proxy.

  5. Сохраните файл Dockerfile и закройте его.
  6. Из пустой папки выполните следующую команду. В зависимости от прав своей учетной записи, возможно, потребуется выполнить команду в режиме sudo.

    docker build --file Dockerfile --tag custom-terraform-runtime:1.0 .

    Эта команда создает локальный образ Docker custom-terraform-runtime:1.0.

  7. В Automation Assembler в разделе Инфраструктура > Подключения > Интеграции перейдите к свой интеграции среды выполнения Terraform.
  8. Создайте или измените параметры контейнера в среде выполнения для использования образа custom-terraform-runtime:1.0:
    Образ прокси-сервера среды выполнения Terraform