Установка и начало работы
Подробная документация по работе с Terraform доступна в нашем профиле GitHub.
Установка Terraform
Установите Terraform по официальной инструкции.
Создание конфигурации Terraform
-
Создайте новую директорию с произвольным названием, например:
timeweb-cloud-terraform
. -
В созданной директории добавьте конфигурационный файл с расширением
.tf
, например:main.tf
.
Добавление провайдера
-
В начале конфигурационного файла
main.tf
добавьте следующий блок:terraform { required_providers { twc = { source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud" } } required_version = ">= 0.13" }
Провайдер поддерживает только версии Terraform 0.13 и выше, на версиях ниже работа провайдера не поддерживается.
-
Выполните
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
Применение файлов конфигурации
-
Для составления плана применения конфигурации выполните команду:
terraform plan
В терминале будет выведен список планируемых изменений. На этом этапе конфигурация применена не будет.
-
Чтобы применить конфигурацию и создать ресурсы выполните команду:
terraform apply
-
Подтверждение создания ресурсов.
Перед применением конфигурации 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:
-
Выполните команду;
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:
-
Введите слово
yes
и нажмите Enter.