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

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

warning

Из-за высокой нагрузки на инфраструктуру Servercore мощности, необходимые для создания многих ресурсов, например CPU, RAM, дисковое пространство, доступны не во всех локациях.

Доступность можно проверить в панели управления или статус-панели. Подробнее в инструкции Доступность ресурсов в локациях для миграции.

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

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

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

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

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

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

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

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

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

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

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

осторожно

Изменение некоторых аргументов приводит к пересозданию ресурса: существующий ресурс удаляется, а новый создается с измененными параметрами. Если в локации не окажется свободных мощностей (например, CPU, RAM или дискового пространства), новый ресурс не будет создан, а существующий к этому моменту уже будет удален.

Доступность мощностей можно проверить в панели управления или статус-панели. Подробнее в инструкции Доступность ресурсов в локациях для миграции.

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

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

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

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

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

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

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

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

    lifecycle {
    create_before_destroy = true
    }
  5. Проверьте, что конфигурационный файл составлен без ошибок:

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

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

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

    terraform apply
  9. Подтвердите создание — введите 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. Ресурсы, созданные дргуими способами (например, в панели управления), не удалятся.

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

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

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

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

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