Это скорее набор концептуальных вещей, которые я пытаюсь обернуть, когда дело касается работы Terraform.
1) Вот сценарий.Допустим, я создаю простой план, который создает пару машин в AWS.Init, apply, он создает инфраструктуру и создает локальный файл состояния.Удовлетворенный кодом, я отправляю его на github.Мой вопрос здесь должен я также поднять файл состояния?Без файла состояния у любого, кто извлекает код и пытается создать экземпляры снова, не будет состояния, поэтому я предполагаю, что terraform пытается создать новый набор машин.Но файл состояния выглядит как остаточные данные, и поэтому его следует игнорировать.
2) Тот же сценарий, но предположим, что план включает в себя установочный файл, который реализует бэкэнд S3.Существует ли та же проблема, или какой-либо запуск плана учитывает состояние бэкэнда S3?
3) Теперь предположим, что я хочу, чтобы этот план выполнялся как модуль в более крупном плане, который развертывает всю среду, исохраняет свой файл состояния в S3.Модуль уже запущен, так что уже есть машины.Будет ли работать модуль как часть более крупного модуля действовать так же, как (1), так как он использует файл состояния зонтичного плана, или он использует свой существующий файл состояния s3?
4) Должна ли внутренняя настройкабыть реализован как самостоятельный модуль?Я думаю, что если кто-то попытается запустить terraform destroy, он не разрушит серверную часть, только инфраструктуру.
В общем, я довольно смущен рабочим процессом Terraform на предприятии.