У меня есть сценарий terraform, который создает группу безопасности aws, несколько серверов и некоторые записи DNS. Это серверы RHEL 7, и я зарегистрировал их в сети Red Hat. Поскольку я уничтожаю свои ресурсы, я хотел бы автоматически отменить регистрацию этих серверов, потому что, если я этого не сделаю, в следующий раз, когда я захочу их зарегистрировать, произойдет сбой, потому что используются все подписки.
Итак, я создал анзибл-роль, которая делает это за меня, и поставил
provisioner "local-exec" {
when = "destroy"
command = "ansible-playbook playbooks/unregister_rhsm.yml"
}
в один из ressource
в надежде, что это поможет. Так или иначе, но не все серверы были сняты с регистрации. Это позволяет мне думать, что я выбрал неправильное место.
Как мне узнать, где поставить provisioner
так что доступный playbook будет работать надежно, пока все действия уничтожения не будут выполнены? Или есть лучший механизм для достижения автоматической отмены регистрации после удаления? (помимо создания сценария оболочки, который вызывает ansible bevor terraform и использует этот сценарий вместо terraform destroy
)
В идеале вы должны уничтожить provisioner
в каждой Red Hat aws_instance
ресурс таким образом, что при запуске он отменяет регистрацию только этого сервера, а не одного сценария, который пытается отменить регистрацию всех серверов. Таким образом, если / когда Terraform решит, что ему необходимо воссоздать один сервер, он не удалит все ваши серверы из сети Red Hat.
Кроме того, я не вижу проблемы с тем, что вы делаете, вам может потребоваться отладить сценарий, чтобы понять, почему он не работает.