Comenzando con Terraform¶
Creando nuestro primer fichero de configuración en el cual vamos a crear una base de datos y un usuario en mysql, en una maquina virtual con sistema operativo debian 8 jessie.
Creando un fichero Terraform¶
Con el un editor de texto creamos el fichero de configuración.
# nano mysql_crearbd_crearuser.tf
# Configuracion the MySQL server
provider "mysql" {
endpoint = "localhost:3306"
username = "root"
password = "root"
}
# Crear base de datos
resource "mysql_database" "proyecto" {
name = "proyecto"
}
# Crear usuario
resource "mysql_user" "josemaria" {
user = "josemaria"
host = "localhost"
password = "josemaria"
}
Creando un plan de ejecución¶
Ahora procedemos a ejecutar el comando terraform apply para crear nuestra base de datos y el usuario en en el servidor mysql.
Ahora entramos en la consola de mysql y comprobamos que se han creado la base de datos y el usuario.
Actualizando el plan de ejecución¶
Modificando el plan de ejecución, en nuestro caso cambiaremos el estado del fichero creado anteriormente, en el que modificamos el usuario y la clave del usuario mysql.
En la imagen comprobamos que al ejecutar terraform plan detecta el cambio en el estado del fichero y nos informa que para llevar acabo el cambio tenemos que ejecutar terraform apply.
Volvemos abrir la consola de mysql y consultamos los usuarios de la base de datos de mysql. Como comprobamos se ha eliminado el usuario creado en el primer plan de ejecución y se ha generado el nuevo usuario definido en el fichero de configuración de terraform.
Representando el plan de ejecución gráficamente¶
Representando nuestra infraestructura de terraform, representaremos la infraestructura creada anteriormente. En nuestro caso generamos una imagen con terraform graph y GraphViz.
Lo primero instalamos el paquete gráfico GraphViz:
# apt install GraphViz
Una vez instalado el paquete ejecutamos el siguiente comando para generar una imagen en formato png.
# terraform graph | dot -Tpng > mysql.png
Nos dirigimos al directorio donde se ha generado la imagen y la abrimos con el visor de imágenes.
Para visualizar el plan de ejecución ejecutaremos el comando terraform show.