Пользователи службы Cloud Assembly, которым необходимо проектировать и запускать интеграции Terraform без подключения к Интернету, могут настроить среду выполнения, используя данный пример.
Этот процесс предполагает, что у вас есть собственный реестр Docker и вы можете получить доступ к его репозиториям без подключения к Интернету.
Создание настраиваемого образа контейнера
- Создайте образ настраиваемого контейнера, который содержит двоичные файлы подключаемого модуля поставщика Terraform.
В следующем файле Dockerfile показан пример создания настраиваемого образа с поставщиком Terraform GCP.
Для загрузки базового образа
projects.registry.vmware.com/vra/terraform:latest
в файле Dockerfile требуется доступ через Интернет к реестру VMware Harbor на сайте projects.registry.vmware.com.Настройки брандмауэра или прокси-сервера могут вызвать сбой сборки образа. Может потребоваться разрешить доступ к сайту releases.hashicorp.com для загрузки двоичных файлов подключаемого модуля поставщика Terraform. Тем не менее в качестве альтернативы можно использовать частный реестр для предоставления двоичных файлов подключаемого модуля.
FROM projects.registry.vmware.com/vra/terraform:latest as final # Create provider plug-in directory ARG plugins=/tmp/terraform.d/plugin-cache/linux_amd64 RUN mkdir -m 777 -p $plugins # Download and unzip all required provider plug-ins from hashicorp to provider directory RUN cd $plugins \ && wget -q https://releases.hashicorp.com/terraform-provider-google/3.58.0/terraform-provider-google_3.58.0_linux_amd64.zip \ && unzip *.zip \ && rm *.zip # For "terraform init" configure terraform CLI to use provider plug-in directory and not download from internet ENV TF_CLI_ARGS_init="-plugin-dir=$plugins -get-plugins=false"
- Выполните сборку, проставьте теги и отправьте настраиваемый образ контейнера в свой репозиторий Docker на отключенном сайте.
- В Cloud Assembly на отключенном сайте в разделе перейдите к интеграции среды выполнения Terraform.
- Создайте или отредактируете параметры контейнера в среде выполнения, чтобы добавить репозиторий для настраиваемого образа контейнера. Созданный настраиваемый образ контейнера в примере имеет имя
registry.ourcompany.com/project1/image1:latest
.
Локальное размещение интерфейса командной строки Terraform
- Загрузите двоичные файлы интерфейса командной строки Terraform.
- Отправьте двоичные файлы интерфейса командной строки Terraform на свой локальный веб-сервер или FTP-сервер.
- В службе Cloud Assembly выберите .
- Создайте или отредактируйте версию Terraform, чтобы она содержала URL-адрес двоичных файлов интерфейса командной строки Terraform, размещенных на вашем локальном сервере.
- Если для локального веб-сервера или FTP-сервера требуется проверка подлинности, выберите Базовая проверка подлинности и введите имя пользователя и пароль для доступа к серверу.
Чтобы изменить тип проверки подлинности, требуется роль администратора облака в Cloud Assembly.
Проектирование и развертывание конфигураций Terraform
При наличии среды выполнения можно добавить файлы конфигурации в Git, спроектировать для них облачные шаблоны и развернуть.
Сведения о начале работы см. в Подготовка Cloud Assembly для конфигураций Terraform.
Устранение неполадок
В ходе развертывания откройте развертывание в Cloud Assembly. На вкладке "Журнал" найдите события Terraform и нажмите Показать журналы справа. Если локальный поставщик Terraform работает, в журнале появляются следующие сообщения.
Initializing provider plugins
Terraform has been successfully initialized
Чтобы получить более надежный журнал, можно вручную отредактировать код облачного шаблона и добавить TF_LOG: DEBUG
, как показано в примере ниже.
resources: terraform: type: Cloud.Terraform.Configuration properties: providers: - name: google # List of available cloud zones: gcp/us-west1 cloudZone: gcp/us-west1 environment: # Configure terraform CLI debug log settings TF_LOG: DEBUG terraformVersion: 0.12.29 configurationSource: repositoryId: fc569ef7-f013-4489-9673-6909a2791071 commitId: 3e00279a843a6711f7857929144164ef399c7421 sourceDirectory: gcp-simple
Создание собственного базового образа
VMware иногда обновляет базовый образ на projects.registry.vmware.com/vra/terraform:latest
. Он может устарел и может содержать уязвимости.
Чтобы создать собственный базовый образ, используйте следующий файл Dockerfile.
FROM alpine:latest as final RUN apk add --no-cache git wget curl openssh