и весь мой код, включая файл состояния tf, находится на одном сервере.
Поскольку у вас нет файла .backup, я не уверен, что вы можете восстановить файл состояния гладко терраформным способом, дайте мне знать, если вы найдете способ :).Однако вы можете сделать несколько шагов, которые помогут вам выйти из такой ситуации.
Лучше всего хранить все ваши файлы состояний в некотором удаленном хранилище, например S3 или Blob, и настроить ваш * 1009.* backend соответственно, чтобы каждый раз, когда вы уничтожаете или создаете новый стек, он всегда связывался с файлом состояния удаленно.
Кроме того, вы можете воспользоваться преимуществом terraform workspace
, чтобы избежать путаницы в файле состояний в сценарии с несколькими средами.Также рассмотрите возможность создания плана для возврата и управления версиями предыдущих развертываний.
terraform plan -var-file "" -out "" -target=module.<blue/green>
что можно сделать, чтобы это не повторилось в будущем.
Сине-зеленое развертывание Terraform - ответ на ваш вопрос.Мы внедрили эту модель довольно давно, и она работает без сбоев.Идея заключается в модульности и возможности повторного использования, одни и те же шаблоны работают для 5 различных компонентов с различной архитектурой без простоев.
Мы пользуемся преимуществами Terraform модуль .У нас есть два модуля, называемые синим и зеленым, вы можете назвать что угодно.В любой данный момент времени синий или зеленый будет принимать трафик.Если у нас есть некоторые изменения для развертывания, мы добавим альтернативный стек на основе выходных данных состояния (целевой модуль основан на состоянии terraform), автоматически проверим его, затем переместим трафик в новый стек и уничтожим старый.
Здесь - статья, которую вы можете сохранить в качестве справочной, но она точно не отражает того, с чего нам все же хорошо начать.