Все каналы
Русскоязычный канал 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
Похожие чаты
Группа Для Общения 💟 Знакомства
@chatikqv · 70.8K участн.
Українці Краків | Катовіце | Польща🇺🇦🇵🇱
@ua_krakow · 29.6K участн.
ФРИЛАНС ЧАТ РАБОТА
@freelansvipchat · 24.3K участн.
Доска объявлений Adult Market
@Market_Desk · 23.8K участн.
Карьера в Ареал
@arealjobs · 22.9K участн.
Барахолка, объявления, купить продать б/у. Купи продай. Мариуполь
@baraholllkamariupol · 22.8K участн.