tengo una pregunta, necesito implementar una lista de instancias de cómputo GCP, ¿cómo hago un bucle por cada "vms" en esta lista de objetos como este
"gcp_zone": "us-central1-a",
"image_name": "centos-cloud/centos-7",
"vms": [
{
"hostname": "test1-srfe",
"cpu": 1,
"ram": 4,
"hdd": 15,
"log_drive": 300,
"template": "Template-New",
"service_types": [
"sql",
"db01",
"db02"
]
},
{
"hostname": "test1-second",
"cpu": 1,
"ram": 4,
"hdd": 15,
"template": "APPs-Template",
"service_types": [
"configs"
]
}
]
}
if
,for
owhile
declaraciones. Sin embargo, puede simularlos, hasta cierto punto, en algunos casos gracias a lacount
propiedad. Lea este excelente artículo sobre cómo reproducir condiciones o bucles con Terraform : blog.gruntwork.io/…for_each
bloques: 0.12.6 Registro de cambios . Por lo que vale, si los condicionales han estado en Terraform por un par de versiones ahora: Terraform docs: Conditional ExpressionsRespuestas:
Parece que encontré qué hacer. Si no pasa los mapas de mapas, sino la lista de mapas, puede usar dicho código
Creará un número real de instancias y cuando elimine, por ejemplo, el medio de tres (si crea tres :)), terraform eliminará lo que pedimos.
fuente
Desde Terraform 0.12, puede usar for_each con módulos como el siguiente:
modules / google_compute_instance / variables.tf
modules / google_compute_instance / main.tf
servidores.tf
Por supuesto, puede agregar tantas variables como sea necesario y usarlas en el módulo.
fuente
Usar el
for_each
bloque es bastante nuevo y no hay demasiada documentación. Parte de la mejor información proviene de su publicación de blog de anuncio: https://www.hashicorp.com/blog/hashicorp-terraform-0-12-preview-for-and-for-each/También asegúrese de consultar la sección Bloques dinámicos de su documentación: https://www.terraform.io/docs/configuration/expressions.html#dynamic-blocks
De cómo se ve su ejemplo, necesita tener un conjunto de valores para cada instancia que se crea para que tenga un mapa de mapas:
A continuación se muestra un ejemplo que creé usando Terraform 0.12.12:
Salida del plan de terraformación:
fuente