Beginner
Curso Completo de OpenTofu: De Cero a DevOps Engineer 4/6
- 1 Section
- 1 Lesson
- 1 Quiz
- 1h Duration
Quiz and gradebook sections
1 Lesson1 Quiz
Capítulo 4: Expresiones, Bucles y Condicionales
1. Introducción
A medida que la infraestructura crece, necesitas lógica: crear recursos condicionalmente o iterar sobre listas de usuarios, subredes o discos. OpenTofu provee herramientas potentes para dinamizar el código.
2. Definición y Explicación
- Count: Un argumento entero que le dice a OpenTofu cuántas copias idénticas de un recurso crear. Accedes al índice actual con
count.index. - For_each: Itera sobre un conjunto (set) de strings o un mapa, permitiendo crear recursos basados en elementos únicos y dinámicos utilizando
each.keyyeach.value. - Condicionales: Utiliza el operador ternario
condición ? valor_si_verdadero : valor_si_falso.
3. Ejemplo
Creación de múltiples archivos a partir de una lista de nombres de departamentos, y un archivo condicional de administrador.
hcl
variable "departamentos" {
type = list(string)
default = ["RRHH", "Finanzas", "Tecnologia"]
}
variable "crear_archivo_admin" {
type = bool
default = false
}
resource "local_file" "carpetas_dep" {
for_each = toset(var.departamentos)
filename = "${path.module}/dep_${each.value}.txt"
content = "Acceso exclusivo para el departamento de ${each.key}"
}
resource "local_file" "admin_file" {
count = var.crear_archivo_admin ? 1 : 0
filename = "${path.module}/admin_config.txt"
content = "Configuración maestra del Administrador."
}
Usa el código con precaución.
4. Buenas Prácticas
- Elige
for_eachsobrecountpara recursos complejos: Si eliminas un elemento del medio de una lista usandocount, OpenTofu destruirá y modificará todos los recursos posteriores porque sus índices cambian.for_eachidentifica cada recurso por su clave única, evitando este problema.
5. Ejercicios de Prueba
- Ejecuta el código anterior tal como está. Debería crear tres archivos de departamentos y cero archivos de administrador.
- Modifica la variable
crear_archivo_adminatruemediante la consola o cambiando su valor por defecto y ejecutatofu apply. Confirma que ahora el archivo de administrador sí aparece.
Want to submit a review? Login
