Резервное копирование государственного файла Terraform - PullRequest
0 голосов
/ 02 декабря 2018

Я обычно запускаю все свои скрипты Terraform через сервер Bastion, и весь мой код, включая файл состояния tf, находится на одном сервере.Произошел этот случай, когда моя машина случайно вышла из строя (полная перезагрузка) и каким-то образом была повреждена корневая файловая система. Теперь мой файл состояния пропал , но мои ресурсы все еще существуют и работают.Я не хочу снова запускать terraform apply, чтобы воссоздать всю среду с простоями.Как лучше всего вылечиться от этого беспорядка и что можно сделать, чтобы это не повторилось в будущем.

Я уже посмотрел на terraform refresh и terraform import.Но есть ли лучшие способы сделать это?

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Если вы все еще не можете восстановить состояние terraform.Вы можете создать план конфигурации terraform, а также состояния для определенных ресурсов aws, используя terraforming Но для редактирования состояния управления ресурсами необходимо некоторое ручное усилие.Вы можете получить этот файл состояния, запустить план terraform и сравнить его результаты с вашей инфраструктурой.Хорошо иметь удаленное состояние, особенно с использованием любых хранилищ объектов, таких как aws s3 или хранилища значений ключей, таких как консул.Он поддерживает блокировку состояния, когда несколько транзакций происходили одновременно.Процесс резервного копирования также довольно прост.

0 голосов
/ 07 декабря 2018

и весь мой код, включая файл состояния tf, находится на одном сервере.

Поскольку у вас нет файла .backup, я не уверен, что вы можете восстановить файл состояния гладко терраформным способом, дайте мне знать, если вы найдете способ :).Однако вы можете сделать несколько шагов, которые помогут вам выйти из такой ситуации.

Лучше всего хранить все ваши файлы состояний в некотором удаленном хранилище, например S3 или Blob, и настроить ваш * 1009.* backend соответственно, чтобы каждый раз, когда вы уничтожаете или создаете новый стек, он всегда связывался с файлом состояния удаленно.

Кроме того, вы можете воспользоваться преимуществом terraform workspace, чтобы избежать путаницы в файле состояний в сценарии с несколькими средами.Также рассмотрите возможность создания плана для возврата и управления версиями предыдущих развертываний.

terraform plan -var-file "" -out "" -target=module.<blue/green>

что можно сделать, чтобы это не повторилось в будущем.

Сине-зеленое развертывание Terraform - ответ на ваш вопрос.Мы внедрили эту модель довольно давно, и она работает без сбоев.Идея заключается в модульности и возможности повторного использования, одни и те же шаблоны работают для 5 различных компонентов с различной архитектурой без простоев.

module tree

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

Здесь - статья, которую вы можете сохранить в качестве справочной, но она точно не отражает того, с чего нам все же хорошо начать.

Blue-Green Deployment

0 голосов
/ 03 декабря 2018

Пожалуйста, смотрите это сообщение в блоге , которое, к сожалению, иллюстрирует import как единственное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...