Как обновить состояние Terraform без внесения изменений - PullRequest
0 голосов
/ 03 октября 2019

сценарий такой:

  • У меня есть 1 репозиторий со многими файлами terraform, включая IAM, экземпляры и т. Д.
  • Мне нужно разделить этот репозиторий на два (конфигурации IAM будут перенесены в другойхранилище, в котором хранится состояние terraform в другом хранилище)

Итак, я хочу обновить состояние этого нового хранилища, добавив состояние конфигураций IAM и удалив состояние IAM из более старого хранилища, но я не хочу применять измененияв моей инфраструктуре, потому что мне пришлось бы удалить все конфигурации из более старого репозитория, а затем создать все заново.

Есть ли способ обновить состояние без применения изменений?

1 Ответ

1 голос
/ 03 октября 2019

Лучший способ - создать новые репозитории, каждый из которых содержит новые файлы состояний. Допустим, ресурсы, созданные из вашего старого репо, хранятся в состоянии с именем «repo1.tfstate». Затем вы создаете новое репо, где вы хотите, чтобы некоторые вещи были отделены от репо1 здесь. Затем вы можете использовать импорт terraform для импорта ресурсов в repo2. Не забудьте удалить только что импортированные из repo1 ресурсы с состоянием terraform rm.

Другим способом было бы сделать состояние terraform pull> state-for-repo-2.tfstate, отредактировать его вручную, поместитьэто в repo2 и сделать толчок состояния terraform. Конечно, вам также придется редактировать состояние для repo1. Но имейте в виду, что push-сообщение состояния terraform перезапишет исходный файл состояния ...

...