Рубрики
Без рубрики

Начало работы с CDK для террафора

Начало работы с CDK для террафора. Теги с CDKTF, террафом, Python.

CDK для террафора

Hashicorp недавно объявил CDKTF Комплект облачного развития для террафора, который в настоящее время поддерживает Python3. и TeampScript Отказ

С CDKTF Мы можем написать код террафора в Python3. или TeampScript вместо HCl Какой язык по умолчанию для террафора.

Ну, я думал о том, чтобы дать ему попробовать и проверить, как это работает с Python3. .

Чтобы установить самый последний стабильный выпуск CDKTF, используйте NPM.

npm install --global cdktf-cli

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

npm install --global cdktf-cli@next

После того, как установка сделана, вы можете проверить установку CDKTF через CDKTF.

Commands:
  cdktf deploy [OPTIONS]   Deploy the given stack
  cdktf destroy [OPTIONS]  Destroy the given stack
  cdktf diff [OPTIONS]     Perform a diff (terraform plan) for the given stack
  cdktf get [OPTIONS]      Generate CDK Constructs for Terraform providers and modules.
  cdktf init [OPTIONS]     Create a new cdktf project from a template.
  cdktf login              Retrieves an API token to connect to Terraform Cloud.
  cdktf synth [OPTIONS]    Synthesizes Terraform code for the given app in a directory.                                                                                                                                  [aliases: synthesize]

Options:
  --version          Show version number                                                                                                                                                                                             [boolean]
  --disable-logging  Dont write log files. Supported using the env CDKTF_DISABLE_LOGGING.                                                                                                                            [boolean] [default: true]
  --log-level        Which log level should be written. Only supported via setting the env CDKTF_LOG_LEVEL                                                                                                                            [string]
  -h, --help         Show help                                                                                                                                                                                                       [boolean]

Options can be specified via environment variables with the "CDKTF_" prefix (e.g. "CDKTF_OUTPUT")

Хорошо, теперь, давайте сделаем некоторую реальную работу, мы создадим проект, в котором мы будем развернуть nginx на вершине Docker, используя CDKTF и python3. Для примера Tearpcript, пожалуйста, проверьте Terraform-CDK Отказ

Создайте каталог по любому имени в нашем случае, мы будем использовать ниже Python-Docker

mkdir python-docker && cd $_

Инициализируйте проект с помощью команды init. Мы будем использовать --локал Флаг, чтобы состояние инфраструктуры будет храниться локально.

cdktf init --template=python --local

Убедитесь, что вы проходите Python И не Python3 еще вы получите ниже ошибки

Invalid values:
  Argument: template, Given: "python3", Choices: "python", "typescript"

CDKTF Сгенерирует шаблон для нас в нашем случае, мы будем использовать Docker, чтобы получить работу nginx, поэтому убедитесь, что поменяйте провайдер в cdktf.json.

{
  "language": "python",
  "app": "pipenv run ./main.py",
  "terraformProviders": ["docker"],
  "codeMakerOutput": "imports"
}

Запустите команду GET, чтобы загрузить зависимости для использования Docker с Python.

cdktf get

Теперь добавьте свой код в main.py Файл для строительства докера

Сначала импортируйте поставщик Docker, это означает, что импорт – это локальный каталог, созданный вышеуказанной командой

from imports.docker import Image, Container

А позже добавьте ниже код

docker_image = Image(self, 'nginx-latest', name='nginx:latest', keep_locally=False)

Container(self, 'nginx-cdktf', name='nginx-python-cdktf',
                  image=docker_image.name, ports=[
                      {
                          'internal': 80,
                          'external': 8000
                      }], privileged=False)

Добавьте зависимости в Пипнв Файл в нашем случае

[packages]
constructs="3.0.4"
cdktf="0.0.12"

Pipenv бросит ошибку, если вы не определяете версию для пакетов

Беги Пипнв Чтобы получить все зависимости для установки Pipenv, проверьте официальный сайт пиронв

pipenv install

Теперь компилируйте и генерируйте конфигурацию террафора

cdktf synth

Приведенная выше команда создаст папку, называемую CDKTF.OUT, которая содержит все конфигурацию Terraform JSON, которая была сгенерирована.

Мы можем запустить обычные команды Terraform

cd cdktf.out
terraform init
terraform plan
terraform apply

ИЛИ

Мы можем развернуть

cdktf deploy

Давайте посмотрим демо

Оригинал: “https://dev.to/abhishekamralkar/getting-started-with-cdk-for-terraform-5d9l”