Кто-то что-то изменил на консоли AWS, которую я подготовил с помощью Terraform. Я не хочу отменять их изменение. Что я делаю? - PullRequest
0 голосов
/ 07 февраля 2020

Я использую terraform для предоставления параметров для AWS Системный менеджер, использующий terraform apply. Чтобы использовать aws_ssm_parameter, вам нужно указать значение (например, пароль или что-то еще). Это нормально, но если кто-то изменяет или обновляет параметр (как он может и должен), то в моем следующем плане terraform он обнаружит это изменение и продолжит переопределять измененное значение снова. Я не хочу, чтобы Terraform делал это.

Какие конкретные команды c я могу использовать в Terraform, чтобы получить обновленные параметры и не переопределить измененный параметр?

Будет ли это:

terraform refresh && terraform plan

Это все?

1 Ответ

0 голосов
/ 07 февраля 2020

Нет, terraform refresh не предназначен для этой цели, хороший пример terraform refre sh ниже

Например, предположим, что ваш файл состояния содержит 3 экземпляра EC2 с идентификаторами экземпляров: i-abc123, i-abc124, i-abc125, а затем вы удаляете i-abc124 за пределами Terraform. После запуска terraform refre sh план покажет, что ему нужно создать второй экземпляр, а план уничтожения покажет, что ему нужно только уничтожить первый и третий экземпляры (а не уничтожить отсутствующий второй экземпляр).

what-do-terraform-refre sh -really-do

Лучше сохранить изменения в файле terraform и затем применить изменения в terraform, делая такие изменения в инфраструктуре, terraform изменит такие ресурсы, если потребуется, или создаст заново в зависимости от типа ресурса.

Например, изменив тип экземпляра на удаленном компьютере и затем запустив terraform apply, он завершает новый экземпляр. и создаст экземпляр с нужным типом, который находится в файле состояния Terraform.

Существует длинный путь, который определен здесь , но я рекомендую настроить конвейер, который позаботится таких изменений вместо создания изменений на пульте.

...