terraform_ru (@terraform_ru) — Telegram-чат | Telegram Dialogs
Все каналы
terraform_ru

terraform_ru

@terraform_ru

2.5K участников другое 💬 Комментарии открыты

Русскоязычный канал Hashicorp Terraform - https://www.terraform.io Оскорбления и реклама строго запрещены. См. также: @ru_hashicorp, @aws_ru, @tekton_ru, @devops_ru, @kubernetes_ru Вакансии и поиск работы: @devops_jobs

Последние публикации

terraform_ru
24.06.2026 16:12
Вынести модули кода в отдельную директорию и вызывать через 1 файл с описание входных параметров. Я бы ещё и террагрантом обмазал поверх )
terraform_ru
20.06.2026 13:05
Попробуйте посмотреть в террагрант
terraform_ru
19.06.2026 13:38
Это называется композитный модуль и это нормальная и правильная практика
terraform_ru
19.06.2026 11:52
stacks может быть не самое удачное название, может быть назвать их root или как то иначе...
terraform_ru
19.06.2026 11:51
В итоге я создал каталог /modules/stacks и положил в него такой составной модуль, который по сути является корневым, или другими словами я нигде не будут его использовать как source. И тогда мне достаточно в live/stage/name одного terragrunt.hcl файла, который передает недостающие переменные и подхвает переменные среды
terraform_ru
19.06.2026 09:29
Можно и будет работать, но не все такое любят. + почитай про https://docs.terragrunt.com/features/stacks/ Может для тебя вариант.
terraform_ru
19.06.2026 09:27
│   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── l2tp │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── system_logging │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── users │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   └── wireguard │   ├── main.tf │   ├── output.tf │   ├── variables.tf │   └── versions.tf ├── minio │   ├── main.tf │   ├── outputs.tf │   ├── variables.tf │   └── version.tf └── services Столкнулся с тем, что даже используя модули много дублирования и хотелось бы сделать модуль, который будет состоять только из других модулей, стоит ли так делать? Если да, то как отделить модули которые состоят только из ресусров, от модулей, которые состоят из других модулей? В идеале стоит прийти к тому что в live/prod/foo/bar будет лежать только terragrant.hcl, чтобы перемещать его между средами без дублирования?
terraform_ru
19.06.2026 09:27
│   ├── users │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   └── wireguard │   ├── main.tf │   ├── output.tf │   ├── variables.tf │   └── versions.tf ├── minio │   ├── main.tf │   ├── outputs.tf │   ├── variables.tf │   └── version.tf └── services 34 directories, 118 files (dev3s)fx:kpda/ $ tree [12:23:22] . ├── live │   ├── prod │   │   ├── env.hcl │   │   ├── mikrotik │   │   │   ├── sw4fl │   │   │   │   ├── data.tf │   │   │   │   ├── main.tf │   │   │   │   ├── providers.tf │   │   │   │   ├── resource.tf │   │   │   │   ├── secrets │   │   │   │   │   └── users_secrets.yaml │   │   │   │   ├── terraform.tfvars │   │   │   │   ├── terragrunt.hcl │   │   │   │   └── variables.tf │   │   │   └── swlan │   │   │   ├── data.tf │   │   │   ├── main.tf │   │   │   ├── providers.tf │   │   │   ├── resource.tf │   │   │   ├── secrets │   │   │   │   └── users_secrets.yaml │   │   │   ├── terraform.tfvars │   │   │   ├── terragrunt.hcl │   │   │   └── variables.tf │   │   ├── secrets.yaml │   │   └── storage │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── providers.tf │   │   ├── terraform.tfvars │   │   ├── terragrunt.hcl │   │   └── variables.tf │   ├── README.md │   ├── root.hcl │   └── stage │   ├── env.hcl │   ├── mikrotik │   │   ├── newcap3 │   │   │   ├── data.tf │   │   │   ├── main.tf │   │   │   ├── providers.tf │   │   │   ├── resource.tf │   │   │   ├── secrets │   │   │   │   └── users_secrets.yaml │   │   │   ├── terraform.tfvars │   │   │   ├── terragrunt.hcl │   │   │   └── variables.tf │   │   └── newdog │   │   ├── data.tf │   │   ├── firewall_filter.tf │   │   ├── firewall_nat.tf │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── providers.tf │   │   ├── resource.tf │   │   ├── secrets │   │   │   ├── capsman_secrets.yaml │   │   │   ├── dns_static_secrets.yaml │   │   │   ├── firewall_secrets.yaml │   │   │   ├── l2tp_secrets.yaml │   │   │   ├── users_secrets.yaml │   │   │   └── wireguard_secrets.yaml │   │   ├── terraform.tfvars │   │   ├── terragrunt.hcl │   │   └── variables.tf │   ├── secrets.yaml │   └── storage │   ├── main.tf │   ├── outputs.tf │   ├── providers.tf │   ├── terraform.tfvars │   ├── terragrunt.hcl │   └── variables.tf └── modules ├── mikrotik │   ├── capsman │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── interfaces │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── interface_wireless_cap │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_addresses │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_dhcp │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_dhcp_client │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_dns │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_firewall_addr_list │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_pool │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_routes │   │   ├── main.tf
terraform_ru
19.06.2026 09:27
Добрый день! Прочитал книгу Брикман_Евгений_Terraform_Инфраструктура_на_уровне_кода,_3_е_издание Теперь пытаюсь организовать разумную структуру для terraform - использовать модули. Пока начал с routeros и s3, позже буду переносить и всё остальное. Сейчас такая структура . ├── live │   ├── prod │   │   ├── env.hcl │   │   ├── mikrotik │   │   │   ├── sw4fl │   │   │   │   ├── data.tf │   │   │   │   ├── main.tf │   │   │   │   ├── providers.tf │   │   │   │   ├── resource.tf │   │   │   │   ├── secrets │   │   │   │   │   └── users_secrets.yaml │   │   │   │   ├── terraform.tfvars │   │   │   │   ├── terragrunt.hcl │   │   │   │   └── variables.tf │   │   │   └── swlan │   │   │   ├── data.tf │   │   │   ├── main.tf │   │   │   ├── providers.tf │   │   │   ├── resource.tf │   │   │   ├── secrets │   │   │   │   └── users_secrets.yaml │   │   │   ├── terraform.tfvars │   │   │   ├── terragrunt.hcl │   │   │   └── variables.tf │   │   ├── secrets.yaml │   │   └── storage │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── providers.tf │   │   ├── terraform.tfvars │   │   ├── terragrunt.hcl │   │   └── variables.tf │   ├── README.md │   ├── root.hcl │   └── stage │   ├── env.hcl │   ├── mikrotik │   │   ├── newcap3 │   │   │   ├── data.tf │   │   │   ├── main.tf │   │   │   ├── providers.tf │   │   │   ├── resource.tf │   │   │   ├── secrets │   │   │   │   └── users_secrets.yaml │   │   │   ├── terraform.tfvars │   │   │   ├── terragrunt.hcl │   │   │   └── variables.tf │   │   └── newdog │   │   ├── data.tf │   │   ├── firewall_filter.tf │   │   ├── firewall_nat.tf │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── providers.tf │   │   ├── resource.tf │   │   ├── secrets │   │   │   ├── capsman_secrets.yaml │   │   │   ├── dns_static_secrets.yaml │   │   │   ├── firewall_secrets.yaml │   │   │   ├── l2tp_secrets.yaml │   │   │   ├── users_secrets.yaml │   │   │   └── wireguard_secrets.yaml │   │   ├── terraform.tfvars │   │   ├── terragrunt.hcl │   │   └── variables.tf │   ├── secrets.yaml │   └── storage │   ├── main.tf │   ├── outputs.tf │   ├── providers.tf │   ├── terraform.tfvars │   ├── terragrunt.hcl │   └── variables.tf └── modules ├── mikrotik │   ├── capsman │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── interfaces │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── interface_wireless_cap │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_addresses │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_dhcp │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_dhcp_client │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_dns │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_firewall_addr_list │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_pool │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── ip_routes │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── l2tp │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf │   ├── system_logging │   │   ├── main.tf │   │   ├── outputs.tf │   │   ├── variables.tf │   │   └── versions.tf
terraform_ru
18.06.2026 09:13
wat
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.