Как уничтожить отдельные ресурсы без повреждения файлов tfstate? - PullRequest
0 голосов
/ 17 января 2020

Я работаю над настройкой автомасштабирования с использованием Terraform и Jenkins. Если существует существующая ASG, и я запускаю конвейер Jenkins, Terraform создаст новую ASG, подождет, пока экземпляры новой ASG восстановятся, а затем уничтожит старую ASG.

Я использую комбинацию аргументов для достижения этой цели -

Сначала жизненный цикл, так что новый asg создается до того, как старый будет уничтожен

lifecycle { create_before_destroy = true }

, затем я получаю Имя ASG из имени конфигурации запуска для принудительного назначения нового ресурса каждый раз, когда я запускаю конвейер (Мой сценарий terraform создает как конфигурацию asg, так и конфигурацию запуска)

resource "aws_autoscaling_group" "bar" {
name = "$(aws_launc_configuration.lc.name}"
.
.
}

и, наконец, с использованием опции wait_for_capacity, так что terraform уничтожает более старые asg только если экземпляры из нового asg здоровы. В случае, если экземпляры из новой ASG не сообщают о исправности, конвейер Jenkins завершается сбоем без какого-либо отката или уничтожения новой ASG. Это оставляет меня с двумя ASG, один со здоровыми экземплярами и другой с нездоровым. Я пытался использовать -

terraform destroy -input=false -force -var-file=tfvars_file -target aws_autoscaling_group.my_asg_name -target aws_launch_configuration.my_lc_name

Но он ничего не удаляет и показывает уничтоженные ресурсы: 0 в качестве сообщения. Есть мысли?

Заранее спасибо.

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