Управлять ресурсами Terraform
Все ресурсы, созданные с помощью Terraform, оплачиваются согласно модели оплаты услуги. Тарификация за ресурс начинается после создания ресурса.
Стоимость ресурсов, созданных с помощью Terraform, не отличается от стоимости ресурсов, созданных с помощью панели управления.
Подходы к управлению ресурсами
Для управления ресурсами можно использовать ресурсный подход и модульный подход.
Для знакомства с Terraform мы рекомендуем использовать ресурсный подход. Такой подход считается более простым для освоения благодаря понятному синтаксису, отсутствию зависимостей и простоте отладки ресурсов.
Ресурсный подход
При ресурсном подходе каждый ресурс описан отдельно в конфигурационном файле. Это обеспечивает максимальный контроль над каждым компонентом инфраструктуры и подходит для небольших проектов, тестирования новых функциональностей или разработки прототипов. Ресурсный подход прост в освоении, но может привести к дублированию кода при масштабировании.
Примеры использования можно посмотреть в разделе Примеры создания инфраструктуры.
Модульный подход
При модульном подходе логически связанные ресурсы объединены в модули — независимые, повторно используемые компоненты инфраструктуры. Модули инкапсулируют логику — например, создание облачного сервера или кластера облачных баз данных. Это упрощает поддержку, тестирование и совместную работу, а также позволяет стандартизировать инфраструктуру. Подходит для средних и крупных проектов.
Примеры модулей можно посмотреть в репозитории Selectel на GitHub.
Создать или изменить ресурсы
Чтобы добавить новые ресурсы в инфраструктуру или изменить созданные ресурсы, нужно отредактировать конфигурационный файл. Terraform автоматически определит, какие ресурсы нужно создать, изменить или удалить.
Если вы внесли изменения через панель управления, они не отобразятся в конфигурационных файлах Terraform.
Мы рекомендуем создавать ресурсы по порядку. Если вы единовременно создаете все ресурсы, которые описаны в конфигурационном файле, может возникнуть ошибка — Terraform создает ресурсы независимо от порядка, в котором они перечислены в файле. Подробнее о создании ресурсов в инструкции Create resource dependencies документации Terraform.
-
Откройте CLI.
-
Убедитесь, что вы находитесь в директории с конфигурационным файлом.
-
Добавьте ресурсы, которые нужно создать, или отредактируйте описание ресурсов в конфигурационном файле.
-
Проверьте, что конфигурационный файл составлен без ошибок:
terraform validate
-
Отформатируйте конфигурационный файл:
terraform fmt
-
Проверьте, какие ресурсы будут созданы:
terraform plan
-
Примените изменения и создайте ресурсы:
terraform apply
-
Подтвердите создание — введите yes и нажмите Enter. Изменения отобразятся в панели управления.
-
Если для создания ресурсов оказалось недостаточно квот, увеличьте квоты.
Ограничения ресурса 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. Ресурсы, созданные дргуими способами (например, в панели управления), не удалятся.
Удалить ресурс
Удалить всю инфраструктуру
-
Убед итесь, что вы находитесь в директории с конфигурационным файлом.
-
Удалите из конфигурационного файла ресурсы.
-
Проверьте, какие ресурсы будут удалены:
terraform plan
-
Примените изменения и удалите ресурсы:
terraform apply
-
Подтвердите удаление — введите yes и нажмите Enter. Удаленные ресурсы перестанут отображаться в панели управления.
При удалении этим способом будут удалены все ресурсы, описанные во всех файлах внутри директории.
-
Убедитесь, что вы находитесь в директории с конфигурационным файлом.
-
Удалите все ресурсы:
terraform destroy
-
Подтвердите удаление — введите yes и нажмите Enter. Удаленные ресурсы перестанут отображаться в панели управления.