39 lines
1.4 KiB
Terraform
39 lines
1.4 KiB
Terraform
locals {
|
|
#######################
|
|
admin_password = var.admin_password != "" ? var.admin_password : random_password.admin_pass.result
|
|
#######################
|
|
# Получаем объект с ключами в виде имен серверов и содержимым всего,
|
|
# что мы хотим видеть при передаче из vars
|
|
servers = merge([
|
|
for vcd_key, vcd_config in var.vcds :
|
|
merge([
|
|
for server_group, servers in vcd_config.servers :
|
|
{
|
|
for server_name, server_config in servers :
|
|
"${server_name}.${server_group}" => {
|
|
vcd_key = vcd_key
|
|
server_group = server_group
|
|
server_name = server_name
|
|
config = server_config
|
|
network_routed = vcd_config.network_routed
|
|
role = server_group
|
|
}
|
|
}
|
|
]...)
|
|
]...)
|
|
|
|
# Получаем объект с ключами в виде сервера-uidдиска,
|
|
# и содержимым в виде его сайзинга
|
|
disks = merge([
|
|
for serverName, serverConfig in local.servers:
|
|
{
|
|
for diskUid, diskSize in serverConfig.config.dataDisk:
|
|
"${serverName}-${diskUid}" => {
|
|
vcd_key = serverConfig.vcd_key
|
|
vm_name = serverName
|
|
unit_num = diskUid
|
|
disk_size = diskSize
|
|
}
|
|
}
|
|
]...)
|
|
} |