terraform - terraform中的案例陈述?
问题描述
嗨,我有下面的 terraform 代码块,它为我创建了用于 sql 和 app 角色的虚拟机。
module "sql_vms" {
source = "../../modules/compute/"
rg_name = var.resource_group_name
location = module.resource_group.external_rg_location
vnet_name = var.virtual_network_name
subnet_name = var.sql_subnet_name
app_nsg = var.application_nsg
vm_count = var.count_vm
base_hostname = var.sql_host_basename
sto_acc_suffix = var.storage_account_suffix
vm_size = var.virtual_machine_size
vm_publisher = var.virtual_machine_image_publisher
vm_offer = var.virtual_machine_image_offer
vm_sku = var.virtual_machine_image_sku
vm_img_version = var.virtual_machine_image_version
username = var.username
password = var.password
allowed_source_ips = var.ip_list
}
module "app_vms" {
source = "../../modules/compute/"
rg_name = var.resource_group_name
location = module.resource_group.external_rg_location
vnet_name = var.virtual_network_name
subnet_name = var.sql_subnet_name
app_nsg = var.application_nsg
vm_count = var.count_vm
base_hostname = var.app_host_basename
sto_acc_suffix = var.storage_account_suffix
vm_size = var.virtual_machine_size
vm_publisher = var.virtual_machine_image_publisher
vm_offer = var.virtual_machine_image_offer
vm_sku = var.virtual_machine_image_sku
vm_img_version = var.virtual_machine_image_version
username = var.username
password = var.password
allowed_source_ips = var.ip_list
}
module "resource_group" {
source = "../../modules/resourcegroup/"
rg_name = "test_rg"
}
虽然它帮助我完成工作。我不认为这是理想的,因为有很多共同的参数,只有很少的改变来创建不同的角色
特定于角色的参数如下:
subnet_name
vm_size
vm_publisher
vm_offer
vm_sku
vm_img_version
可以在 terraform 中执行 case 语句或循环吗?
解决方案
我认为你需要做的不是找到一个循环来实现,相反,你可以尝试为每个变量设置默认值,只输入你想要指定的变量的特殊值。就像 Terraform Registry 中的 Azure,例如compute . 计算有很多变量,但您只需要指定您想要和需要的变量。我认为这是你真正需要的方式。
推荐阅读
- javascript - 如何创建一个列表
- python - 是否可以使用 python 时间序列工作日来生成月末时间序列?
- javascript - FormBuilder.js:如何从单选组控件继承?
- javascript - 如何从另一个数组中找到的一个数组中递增每个字符串元素?
- apache-spark - 在火花中如何从结构中抽象出数组并用它创建一个新字段
- javascript - 单击时从其他 div 中删除类,并找到类和切换类
- ansible - 稳定 | 部署虚拟机然后针对新主机运行额外的剧本?
- python - 可重复使用的 AWS Glue 作业
- ios - 如何在 Scene Delegate 中的自动登录完成之前一直停留在启动屏幕上?
- java - 设置 JSESSIONID cookie 的 SameSite 属性 - JHipster 应用程序