terraform tfstate не обновляется из удаленного сегмента s3
Я развернул инфраструктуру AWS, используя код tf на моей локальной машине, где на моей машине хранился файл terraform.tfstate. Теперь я хочу, чтобы другие разработчики ссылались на тот же файл состояния, и, следовательно, я скопировал код в github repo, добавил state.tf и скопировал terraform.tfstate с моей локальной машины в префикс корзины s3, на который указывает мой файл состояния. Кроме того, в репо вносятся изменения, вместо одного большого файла TF я разделил его на три файла - state.tf, vpc.tf и dynamicodb.tf.
мой файл state.tf:
terraform {
backend "s3" {
bucket = "testing-d-tf-state"
key = "aws-xyz/terraform.tfstate"
region = "us-west-2"
}
}
однако, когда мой разработчик запускает код на своей машине, он получает
План: 26 добавить, 0 изменить, 25 уничтожить.
Я не могу понять, почему он не получает файл terraform.tfstate, обновленный правильно для чтения, так что он не получает "добавить" или "уничтожить", так как в инфраструктуру не вносятся изменения.
1 ответ
Вы не должны вручную копировать terraform.tfstate
файл в удаленном месте. После того, как вы закодировали backend
информация, вы бы перезапустить terraform init
Terraform позаботится о правильной настройке для вас как локально, так и в удаленной корзине.
После того, как вы это сделали, есть несколько вещей, которые вы должны сделать, чтобы убедиться, что это работает:
- Войдите в консоль AWS и подтвердите, что теперь есть
terraform.tfstate
файл в правильном ведре и месте. - переместить местный
terraform.tfstate
файл (не удаляйте его на всякий случай), затем запустите что-то вродеterraform state list
это запросит файл состояния. Если это работает, то ваша конфигурация удаленного состояния работает.