Terraform условное создание - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть файл Terraform, который создает группу ресурсов, учетную запись хранения, общие ресурсы хранения, базу данных и виртуальные машины на Azure. Мой предложенный вариант использования заключается в том, что в рабочей среде, когда группа ресурсов, учетная запись хранения, общие ресурсы хранения и база данных созданы, они должны оставаться на месте. Тем не менее, существуют случаи, когда виртуальные машины могут нуждаться в разрушении и воссоздании с другими спецификациями. Я знаю, что могу запустить файл один раз, чтобы создать все, а затем испортить виртуальные машины и воссоздать их с применением, но это не похоже на идеальный метод.

1 Ответ

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

При регулярном использовании изменения в инфраструктуру следует вносить путем изменения конфигурации, а не путем выполнения обязательных команд, таких как terraform taint. Если вы что-то измените в конфигурации виртуальной машины, которая требует ее создания, то базовый поставщик должен составить план автоматической замены этого объекта, оставив другие без изменений.

Когда у вас есть другие объекты, которые необходимо изменить различные ритмы - особенно когда некоторые из них являются объектами с состоянием, такими как базы данных - хороший способ смоделировать это в Terraform - это разложить проблему на несколько отдельных конфигураций Terraform. Вы можете использовать источники данных в одной конфигурации для получения информации об объектах, созданных в другой.

Разделение по крайней мере на две отдельные конфигурации означает, что риск запуска terraform apply в одной из них может быть уменьшен, поскольку область действия действий, которые он может предпринять, это только объекты, управляемые в этой конкретной конфигурации. Хотя в принципе вы можете внимательно изучить план Terraform, чтобы увидеть, когда он планирует внести изменения, которые могут быть вредными, разделение на несколько конфигураций является дополнительной гарантией, которую многие группы используют для уменьшения возможного воздействия человеческой ошибки.

...