¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos de OpenTofu

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de máquina virtual12 min de lectura10 comandos

Decirlo una vez, construirlo siempre

Un centro quiere los mismos diez ordenadores en cada aula, montados de la misma manera. A mano, diez veces, salen diez aulas un poco distintas. La infraestructura como código escribe las aulas en un archivo: una herramienta construye lo que el archivo describe, las veces que haga falta, y te enseña lo que va a cambiar antes de cambiarlo.

Al terminar esta lección

Nota

Puedo decir qué es un plan, para qué sirve el estado y por qué una herramienta planifica antes de cambiar nada.

Palabras clave

  • OpenTofu: una herramienta libre y gratuita que lee archivos y construye lo que describen.
  • Recurso: una cosa que describe un archivo. Aquí guarda un valor; con un proveedor podría ser un servidor.
  • Plan: la lista de cambios que OpenTofu haría, mostrada antes de hacerlos.
  • Apply (aplicar): hacer los cambios que el plan enumeró.
  • Estado (state): el archivo donde OpenTofu anota lo que ya ha construido.
  • Proveedor (provider): un complemento que habla con una nube real. Esta máquina no puede descargar ninguno.

Para empezar: lo que ya sabes

Nota

Responde mentalmente. 1. ¿Qué es una variable en un programa? 2. Si pides dos veces una taza de té, ¿tienes una o dos? 3. ¿Para qué sirve una lista de tareas al día siguiente? Vas a encontrarte las tres enseguida.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra de la parte superior de esta lección. Este laboratorio es una máquina Ubuntu completa para ti, así que tarda un poco más en arrancar que un contenedor, y descarga OpenTofu la primera vez, por lo que necesitas una cuenta gratuita. Cada botón Ejecutar escribe su comando en el terminal de la máquina, uno tras otro en la misma sesión. Si uno dice que la máquina aún está arrancando, espera unos segundos y púlsalo otra vez. Para verlos, o para escribir los tuyos, pulsa Abrir terminal en la barra.

Un proyecto es una carpeta de archivos

El laboratorio te da un proyecto mínimo en ~/tofu-lab/hello. cd te lleva allí. El archivo main.tf contiene un recurso llamado hello del tipo integrado terraform_data. Guarda el valor "hello" como su input (entrada) y lo devuelve como output (salida). Un segundo bloque muestra esa salida. No se crea nada fuera de OpenTofu: el laboratorio no tiene ninguna nube donde crear cosas.

Comando
cd ~/tofu-lab/hello

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
cat main.tf

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Plan: mirar antes de cambiar nada

tofu init prepara la carpeta. Un proyecto real descarga aquí sus proveedores; este no tiene ninguno que buscar, así que es inmediato. Después tofu plan compara el archivo con el estado y muestra lo que haría. Un + significa crear, y la última línea lo suma: Plan: 1 to add, 0 to change, 0 to destroy. Un plan no cambia nada.

Comando
tofu init

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
tofu plan

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Apply: hacerlo y que quede anotado

tofu apply hace lo que el plan enumeró. Sin -auto-approve te pide que escribas yes antes; el laboratorio lo añade para que el botón lo haga por ti. Termina con Apply complete! Resources: 1 added, 0 changed, 0 destroyed. El recurso queda anotado en el estado. tofu state list muestra lo que contiene el estado.

Comando
tofu apply -auto-approve

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
tofu state list

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprueba

Consejo

¿Qué comando cambia algo y cuál solo dice lo que cambiaría? Respuesta: tofu apply cambia, tofu plan solo informa. ¿Qué dice el plan si lo repites enseguida? Respuesta: No changes. Your infrastructure matches the configuration., porque el estado ya contiene lo que describe el archivo. Pruébalo.

Un error frecuente

Advertencia

Mucha gente cree que OpenTofu mira el mundo real cada vez para saber qué hay. No es así: compara tus archivos con su estado, su propio registro. Lo que el estado dice que existe es lo que cree que existe, así que el estado vale tanto como la infraestructura que describe.

Cambiar un valor y leer el plan

El siguiente comando cambia "hello" por "goodbye" en el archivo con sed, un buscar y reemplazar. Luego tofu plan tiene que distinguir entre algo nuevo y algo modificado. Un ~ significa modificar en el sitio, el valor antiguo y el nuevo se muestran juntos, y la última línea dice Plan: 0 to add, 1 to change, 0 to destroy. Lees el plan antes de aplicar: ese es el hábito para el que existe esta herramienta.

Comando
sed -i 's/input = "hello"/input = "goodbye"/' main.tf

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
tofu plan

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

El estado es un archivo, y sin él OpenTofu olvida

En esta carpeta el estado es un archivo normal, terraform.tfstate. Bórralo y OpenTofu pierde su registro. Entonces el plan dice 1 to add, para un recurso que ya ha creado, porque para él no existe nada. Con una nube real eso crearía una segunda copia de todo. Por eso los equipos reales guardan el estado en un lugar seguro y nunca lo editan a mano. Después, sudo tofulab reset hello deja esta carpeta como se entregó.

Comando
rm terraform.tfstate

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
tofu plan

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprobación final

Consejo

Responde sin volver atrás. 1. ¿Qué cambia tofu plan? 2. ¿Qué anota el estado? 3. ¿Qué dice el plan si lo ejecutas por segunda vez después de un apply? 4. ¿Por qué esta máquina no puede crear un servidor real? Respuestas: nada; lo que OpenTofu ya ha construido; nada que hacer; no tiene proveedor, y un proveedor es lo que habla con una nube. Cuando estés listo, lee tu laboratorio: ejecuta cat ~/README.md en el terminal.

Para el profesorado

Consejo

Esta lección es un pequeño ejemplo de una lección que se trabaja en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia de cada alumno. Se trabaja en un laboratorio de VM: cada alumno tiene su propia máquina Ubuntu con OpenTofu instalado, y un botón Ejecutar escribe en su terminal y muestra lo que se imprimió. Hace falta una cuenta gratuita (la máquina descarga OpenTofu desde GitHub). Puntos clave: 1. Un plan muestra los cambios antes de hacerlos. 2. El estado es el registro de OpenTofu de lo que construyó. 3. El mismo archivo se puede aplicar de nuevo sin cambiar nada. Error frecuente: creer que OpenTofu mira el mundo real en lugar de su estado. El laboratorio usa solo el recurso integrado terraform_data, así que no se crea nada real; los proveedores reales necesitan una red que el laboratorio no tiene. Después de la lección, sudo tofulab reset hello deja la carpeta como estaba. El propio laboratorio tiene una comprobación que planifica y aplica el proyecto del alumno con valores propios. Copie la lección en su propio módulo para cambiarla, o construya una desde cero con el menú Laboratorio del constructor de lecciones.

Sobre este laboratorio y su código: Laboratorio de OpenTofu: la infraestructura como código, con plan, apply y estado, en una VM

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.