Перейти к основному содержимому

Управлять ресурсами Terraform

Последнее изменение:

Все ресурсы, созданные с помощью Terraform, оплачиваются согласно модели оплаты услуги. Тарификация за ресурс начинается после создания ресурса.

Стоимость ресурсов, созданных с помощью Terraform, не отличается от стоимости ресурсов, созданных с помощью панели управления.

Подходы к управлению ресурсами

Для управления ресурсами можно использовать ресурсный подход и модульный подход.

Для знакомства с Terraform мы рекомендуем использовать ресурсный подход. Такой подход считается более простым для освоения благодаря понятному синтаксису, отсутствию зависимостей и простоте отладки ресурсов.

Ресурсный подход

При ресурсном подходе каждый ресурс описан отдельно в конфигурационном файле. Это обеспечивает максимальный контроль над каждым компонентом инфраструктуры и подходит для небольших проектов, тестирования новых функциональностей или разработки прототипов. Ресурсный подход прост в освоении, но может привести к дублированию кода при масштабировании.

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

Модульный подход

При модульном подходе логически связанные ресурсы объединены в модули — независимые, повторно используемые компоненты инфраструктуры. Модули инкапсулируют логику — например, создание облачного сервера или кластера облачных баз данных. Это упрощает поддержку, тестирование и совместную работу, а также позволяет стандартизировать инфраструктуру. Подходит для средних и крупных проектов.

Примеры модулей можно посмотреть в репозитории Selectel на GitHub.

Создать или изменить ресурсы

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

Если вы внесли изменения через панель управления, они не отобразятся в конфигурационных файлах Terraform.

Мы рекомендуем создавать ресурсы по порядку. Если вы единовременно создаете все ресурсы, которые описаны в конфигурационном файле, может возникнуть ошибка — Terraform создает ресурсы независимо от порядка, в котором они перечислены в файле. Подробнее о создании ресурсов в инструкции Create resource dependencies документации Terraform.

  1. Откройте CLI.

  2. Убедитесь, что вы находитесь в директории с конфигурационным файлом.

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

  4. Проверьте, что конфигурационный файл составлен без ошибок:

    terraform validate
  5. Отформатируйте конфигурационный файл:

    terraform fmt
  6. Проверьте, какие ресурсы будут созданы:

    terraform plan
  7. Примените изменения и создайте ресурсы:

    terraform apply
  8. Подтвердите создание — введите yes и нажмите Enter. Изменения отобразятся в панели управления.

  9. Если для создания ресурсов оказалось недостаточно квот, увеличьте квоты.

Ограничения ресурса openstack_compute_flavor_v2

Если вы измените параметры vcpus, ram или disk в описании ресурса openstack_compute_flavor_v2 на недопустимое, то возникнет ошибка — Terraform удалит ресурс и не сможет создать новый.

Чтобы сначала создавался новый флейвор, а затем удалялся старый, добавьте блок в описание ресурса openstack_compute_flavor_v2:

lifecycle {
create_before_destroy = true
}

Посмотрите подробное описание ресурса openstack_compute_flavor_v2.

Удалить ресурсы

Можно удалить определенные ресурсы или всю инфраструктуру, которая была создана с помощью Terraform. Ресурсы, созданные дргуими способами (например, в панели управления), не удалятся.

  1. Убедитесь, что вы находитесь в директории с конфигурационным файлом.

  2. Удалите из конфигурационного файла ресурсы.

  3. Проверьте, какие ресурсы будут удалены:

    terraform plan
  4. Примените изменения и удалите ресурсы:

    terraform apply
  5. Подтвердите удаление — введите yes и нажмите Enter. Удаленные ресурсы перестанут отображаться в панели управления.