Middle+
46
questionbank

Если вы удалили состояние (state) с машины и загрузили его на провайдер, будет ли оно подгружаться при выполнении команды terraform init? Или что произойдет в этом случае?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Нет, при выполнении terraform init состояние не будет автоматически подгружаться на машину после его удаления с локального диска и переноса на провайдер.

terraform init в первую очередь выполняет следующие действия:

  • Инициализирует бэкенд (backend), который был настроен для удаленного хранения состояния (например, S3, Azure Blob Storage, Google Cloud Storage).
  • Загружает плагины провайдеров, указанных в конфигурации.
  • Загружает модули, если они используются.

Файл локального состояния (terraform.tfstate) удаляется с локальной машины. Terraform будет использовать только состояние, сохраненное в настроенном бэкенде.

Что произойдет:

  1. При выполнении terraform init, Terraform прочитает конфигурацию и определит наличие настроенного бэкенда.
  2. Он инициализирует этот бэкенд, устанавливая соединение с удаленным хранилищем.
  3. На локальной машине не будет создаваться новый локальный файл terraform.tfstate. Terraform будет работать напрямую с удаленным состоянием.

При последующих выполнениях команд (terraform plan, terraform apply, terraform destroy) Terraform будет обращаться к удаленному бэкенду для получения текущего состояния инфраструктуры.

Пример настройки бэкенда S3:

terraform