Установка и начало работы

Подробная документация по работе с Terraform доступна в нашем профиле GitHub.

Установка Terraform

Установите Terraform по официальной инструкции.

Создание конфигурации Terraform

  1. Создайте новую директорию с произвольным названием, например: timeweb-cloud-terraform.

  2. В созданной директории добавьте конфигурационный файл с расширением .tf, например: main.tf.

Добавление провайдера

  1. В начале конфигурационного файла main.tf добавьте следующий блок:

    terraform {
      required_providers {
        twc = {
          source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
        }
      }
      required_version = ">= 0.13"
    }
    

    Провайдер поддерживает только версии Terraform 0.13 и выше, на версиях ниже работа провайдера не поддерживается.

  2. Выполните terraform init для скачивания провайдера

Установка API-токена для работы с провайдером

Получите токен API в панели управления, после чего воспользуйтесь одним из указанных способов:

Добавьте созданный токен в переменные окружения для его использования в Terraform:

export TWC_TOKEN=eyJhbGc...

Или добавьте созданный токен в качестве параметра провайдера:

provider "twc" {
  token = "eyJhbGci..."
}

Подготовка конфигурации

При помощи Terraform в Timeweb Cloud можно управлять различными типами ресурсов. Подробную информацию можно найти здесь.

В качестве примера применим конфигурацию ниже для создания виртуальной машины со следующими параметрами:

  • Имя — Example server
  • NVMe-диск 10 Гб
  • 1 ядро CPU
  • 1 Гб RAM
  • ОС — Ubuntu 22.04 
  • Локация — ru-1
terraform {
  required_providers {
    twc = {
      source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
    }
  }
  required_version = ">= 0.13"
}

data "twc_configurator" "configurator" {
  location = "ru-1"
  disk_type = "nvme"
}

data "twc_os" "os" {
  name = "ubuntu"
  version = "22.04"
}
resource "twc_server" "example-server" {
  name = "Example server"
  os_id = data.twc_os.os.id

  configuration {
    configurator_id = data.twc_configurator.configurator.id
    disk = 1024 * 10
    cpu = 1
    ram = 1024
  }
}

Для работы данного примера требуется установленная переменная окружения TWC_TOKEN.

Для доступа к серверу потребуется пароль, который после создания сервера будет отправлен на почту. Как альтернативный вариант можно использовать доступ по SSH, подробнее о котором можно узнать в документации по ресурсу twc_server и источнику данных twc_ssh_keys.

Проверка файлов конфигурации

Проверка конфигурации выполняется командой:

terraform validate

Если конфигурация является допустимой, появится сообщение:

Success! The configuration is valid.

Другие команды terraform можно узнать из официальной документации Terraform

Применение файлов конфигурации

  1. Для составления плана применения конфигурации выполните команду:

    terraform plan

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

  2. Чтобы применить конфигурацию и создать ресурсы выполните команду:

    terraform apply
  3. Подтверждение создания ресурсов.

Перед применением конфигурации Terraform повторно выведет план вносимых изменений и запросит ручное подтверждение перед началом своей работы:

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value:

Введите в терминал слово yes и нажмите Enter.

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

Удаление созданных ресурсов

Чтобы удалить все ресурсы, созданные через Terraform:

  1. Выполните команду;

    terraform destroy

    Во время выполнения будет выведен план удаления всех созданных ресурсов и Terraform запросит ручное подтверждение перед началом своей работы:

    Do you really want to destroy all resources?
      Terraform will destroy all your managed infrastructure, as shown above.
      There is no undo. Only 'yes' will be accepted to confirm.
    
      Enter a value:
  2. Введите слово yes и нажмите Enter.

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону