#amazon-web-services #terraform #terraform-modules
Вопрос:
У меня есть два разных модуля terraform с одним и тем же входным var, за исключением имени и домена. Есть ли способ поделиться входным var? может быть, с помощью внешнего файла или чего-то в этом роде?
Вот мои модули
module "autoscaling_docker_frontend" {
source = "../../_/autoscaling_docker"
domain = "domain-1.com"
has_keychain = true
instance_type = "t3.micro"
name = "name-1"
certificate = var.certificate
ami = var.ami
account_id = var.account_id
dns_zone_id = var.dns_zone_id
environment = var.environment
key_name = var.key_name
subnets = var.subnets
vpc_id = var.vpc_id
policies = var.policies
region = var.region
security_groups_alb = var.security_groups_alb
security_groups_ec2 = var.security_groups_ec2
}
module "autoscaling_docker_backend" {
source = "../../_/autoscaling_docker"
domain = "domain-2.com"
has_keychain = true
instance_type = "t3.micro"
name = "name-2"
certificate = var.certificate
ami = var.ami
account_id = var.account_id
dns_zone_id = var.dns_zone_id
environment = var.environment
key_name = var.key_name
subnets = var.subnets
vpc_id = var.vpc_id
policies = var.policies
region = var.region
security_groups_alb = var.security_groups_alb
security_groups_ec2 = var.security_groups_ec2
}
Спасибо
Комментарии:
1. Что вы подразумеваете под «поделиться»? Как поделиться?
2. Я хотел бы поделиться всеми входными данными. Поместите все входные переменные в выделенные файлы и вызовите этот файл в модуле (как мы делаем с «источником»).
3. Извините за задержку. У меня не было времени попробовать. Я попробую на этой неделе. Спасибо
4. Я не могу создать общий модуль, потому что модуль «autoscaling_docker» требует, чтобы все эти переменные были настроены правильно. autoscaling_docker-это общий модуль, используемый повсеместно.
Ответ №1:
Ваши общие переменные, как видите, связаны с сетью. Таким образом, вы можете создать специальный модуль для создания сетевой среды для вашей группы автоматического масштабирования.
Таким образом, вы сначала вызовете сетевой модуль, а затем сможете передать все его выходные данные другим модулям в качестве входной переменной.