Для проектов, которые включают в себя конфигурации Terraform, требуется доступ к среде выполнения Terraform, интегрируемой с локальной версией Cloud Assembly.
Добавление среды выполнения Terraform
Среда выполнения состоит из кластера Kubernetes, выполняющего команды Terraform CLI для осуществления запрошенных операций. Кроме того, среда выполнения собирает журналы и возвращает результаты команд Terraform CLI.
Для локальной версии vRealize Automation требуется, чтобы пользователи настроили собственный кластер Kubernetes в среде выполнения Terraform. Для каждой организации поддерживается только одна среда выполнения Terraform. Все развертывания Terraform для этой организации используют одну и ту же среду выполнения.
- Убедитесь, что у вас есть кластер Kubernetes, в котором можно запустить интерфейс командной строки Terraform.
- Все пользователи могут предоставлять файл kubeconfig для запуска интерфейса командной строки Terraform в неуправляемом кластере Kubernetes.
- Пользователи лицензии уровня Enterprise могут запускать интерфейс командной строки Terraform в кластере Kubernetes под управлением vRealize Automation.
В Cloud Assembly перейдите в раздел и подтвердите, что у вас есть кластер Kubernetes. Если у вас нет такого кластера, см. инструкции по его добавлению в Работа с Kubernetes в Cloud Assembly.
- Если кластер Kubernetes только что добавлен или изменен, дождитесь завершения сбора данных.
Процесс сбора данных извлекает список пространств имен и другие сведения и может занимать до 5 минут в зависимости от поставщика.
- После завершения сбора данных выберите Среда выполнения Terraform. , а затем карточку
- Введите значения параметров.
Настройка Описание Имя Назначьте для интеграции среды выполнения уникальное имя. Описание Укажите, для чего предназначена интеграция. Интеграция среды выполнения Terraform: Тип среды выполнения (только для уровня Enterprise) Пользователи лицензии уровня Enterprise могут выбрать, запускать ли интерфейс командной строки Terraform в кластере Kubernetes под управлением vRealize Automation или в неуправляемом кластере. Kubernetes kubeconfig (все пользователи) Для неуправляемого кластера Kubernetes: вставьте все содержимое файла kubeconfig кластер, предназначенное для внешнего кластера.
Сведения об использовании внешней среды выполнения Kubernetes с прокси-сервером см. в разделе Добавление поддержки прокси-сервера.
Этот параметр доступен для всех пользователей.
Кластер Kubernetes (только для уровня Enterprise) Для Kubernetes под управлением vRealize Automation выберите кластер, в котором будет запускаться интерфейс командной строки Terraform.
Кластер и соответствующий файл kubeconfig должны быть доступны. Для проверки доступа к kubeconfig используйте метод GET в каталоге /cmx/api/resources/k8s/clusters/{clusterId}/kube-config.
Этот параметр доступен только для лицензий уровня Enterprise.
Пространство имен Kubernetes Выберите пространство имен, которое будет использоваться в кластере для создания модулей, которые запускают Terraform CLI. Параметры контейнера среды выполнения: Изображение Введите путь к образу контейнера версии Terraform, которую необходимо запустить. Примечание: Кнопка «Проверить» не позволяет проверить наличие образа контейнера.Требование к ЦП Укажите объем ЦП для выполнения контейнеров. Значение по умолчанию — 250 millicore. Ограничение ЦП Укажите максимально допустимый объем ЦП для выполнения контейнеров. Значение по умолчанию — 250 millicore. Требование к памяти Укажите объем памяти для выполнения контейнеров. Значение по умолчанию — 512 МБ. Ограничение памяти Укажите максимально допустимый объем памяти для выполнения контейнеров. Значение по умолчанию — 512 МБ. - Щелкните ПРОВЕРИТЬ и при необходимости измените значения параметров.
- Нажмите кнопку ДОБАВИТЬ.
Настройки параметров кэшируются. После добавления интеграции можно изменить такие параметры, как кластер или пространство имен, но для обнаружения изменений и запуска Terraform CLI с новыми параметрами может потребоваться до 5 минут.
Устранение неполадок среды выполнения Terraform
Некоторые проблемы при развертывании конфигурации Terraform могут быть связаны с интеграцией среды выполнения.
Проблема | Причина | Разрешение |
---|---|---|
Не удается выполнить проверку, выводится сообщение о недопустимости пространства имен. | Кластер был изменен, но оставлено предыдущее пространство имен в пользовательском интерфейсе. | После изменения выбранного кластера всегда снова выбирайте пространство имен. |
Раскрывающийся список пространств имен пуст или не содержит новые добавленные пространства имен. | Сбор данных для кластера не завершен. Сбор данных занимает до 5 минут после ввода или изменения кластера и до 10 минут при вводе или изменении пространства имен. | В случае нового кластера с существующими пространствами имен подождите 5 минут до завершения сбора данных. В случае нового пространства имен в существующем кластере подождите 10 минут до завершения сбора данных. Если проблема сохраняется, удалите кластер и снова добавьте его в разделе . |
Контейнеры Terraform CLI создаются в предыдущем кластере, предыдущем пространстве имен или с предыдущими настройками среды выполнения даже после обновления учетной записи интеграции. | Клиент API-интерфейса Kubernetes, используемый системой vRealize Automation, кэшируется в течение 5 минут. | Чтобы изменения вступили в силу, может потребоваться до 5 минут. |
При выполнении операции проверки или развертывания Terraform произошла ошибка; сообщается, что Kubeconfig недоступен. | Иногда эти ошибки возникают из-за того, что кластер недоступен из vRealize Automation. В других случаях учетные данные пользователя, маркеры или сертификаты являются недействительными. |
Ошибка Kubeconfig может возникать по различным причинам. Для устранения неполадок может потребоваться обращение в службу технической поддержки. |
Добавление поддержки прокси-сервера
Чтобы кластер внешней среды выполнения Kubernetes мог подключаться через прокси-сервер, выполните следующие действия.
- Войдите на сервер внешнего кластера Kubernetes.
- Создайте пустую папку.
- В новой папке добавьте в новый файл с именем 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
- Измените значения заполнителя так, чтобы переменные среды
https_proxy
иhttp_proxy
содержали параметры прокси-сервера, используемого для доступа к Интернету.Параметр protocol будет иметь значение http или https, в зависимости от того, какой протокол использует ваш прокси-сервер, и может отличаться от имени переменной среды
https_proxy
илиhttp_proxy
. - Сохраните файл Dockerfile и закройте его.
- Из пустой папки выполните следующую команду. В зависимости от прав своей учетной записи, возможно, потребуется выполнить команду в режиме sudo.
docker build --file Dockerfile --tag custom-terraform-runtime:1.0 .
Эта команда создает локальный образ Docker custom-terraform-runtime:1.0.
- В Cloud Assembly в разделе перейдите к свой интеграции среды выполнения Terraform.
- Создайте или измените параметры контейнера в среде выполнения для использования образа custom-terraform-runtime:1.0: