Меня немного интересуют модули Terraform. Каковы их точки? Я продолжаю видеть, что это должно сэкономить мне время, не копировать вставку и тому подобное, но я думаю, что могу упустить смысл, потому что не понимаю, зачем мне их использовать?
Я использовал их только один раз, поэтому мой опыт ограничен. Мне нужно создать 2 разные среды, и я не уверен, зачем мне это делать. Возможно, у меня было бы другое мнение, если бы мне пришлось делать 10 окружений. Среды будут в разных учетных записях, с использованием разных vpcs, разных IAM, ... Это навело меня на мысль, что я могу создать в основном 2 папки и ссылаться на некоторые переменные.
По поводу "не копировать-вставить", мне кажется вы делаете файл, который потом ссылается на модули и переменные. В какой-то момент вам все равно нужно написать все ресурсы (например, int-sg, test-sg). так почему бы не записать его прямо в нужную папку?
Я надеюсь, что этот вопрос имеет смысл, я был бы признателен за любое конструктивное мнение
модули имеют отступ для группировки ресурсов, которые требуются несколько раз.
Допустим, у вас есть три среды dev
, staging
и prod
.
Вы хотели бы, чтобы они были как можно равными, особенно staging
и prod
.
Итак, если вы хотите создать сервер с EIP, определенными группами безопасности и всем, что ему нужно, чтобы он был доступен, вы можете создать модуль для группировки этих ресурсов.
Затем модуль можно легко включить в ваши файлы .tf
для соответствующих сред с различные параметры для каждой среды.
Таким образом, вы можете сохранить ресурсы очень общими, а также иметь преимущество в том, что Terraform автоматически обновит все среды одинаково, если вы измените ресурсы в модуле. Таким образом, у вас будет единая точка для применения изменений вместо редактирования всех измененных ресурсов во всех файлах env.
Теперь только представьте, что у вас есть более 2 или 3 сред (или вариантов использования для одних и тех же групп ресурсов), и вы увидите преимущество модулей;)