Importar tus recursos de Azure a Terraform con Azure Terrafy

Una de las herramientas que Microsoft ha anunciado recientemente es Azure Terrafy, todavía en preview, con el objetivo de que puedas importan fácilmente aquellos recursos que ya tienes desplegados en Azure, pero que no tenías como Infraestructura como código, a Terraform. En este artículo te cuento cómo empezar a usarla.

Descargar Azure Terrafy

Lo primero que necesitas es descargar la herramienta de su repositorio de GitHub, en el apartado Releases. Puedes hacerlo de forma sencilla con cURL:

# Download zip
curl -L https://github.com/Azure/aztfy/releases/download/v0.2.0/aztfy_v0.2.0_darwin_arm64.zip -o aztfy.zip
# Unzip
unzip aztfy.zip && rm aztfy.zip

Lo ideal sería ubicar este ejecutable en una ruta fuera del proyecto y añadirlo al PATH para que sea sencillo su uso. También puedes instalarla a través de Go:

go install github.com/Azure/[email protected]

Importar un grupo de recursos de Azure

Ahora que ya la tienes instalada, la forma de utilizarla es tan simple como, una vez iniciada sesión con az login en la suscripción que quieras, indicar el grupo de recursos y, si se quiere, la ruta de salida del resultado:

# Create an output folder
mkdir terraform
./aztfy -o terraform Tour-Of-Heroes

En este ejemplo, al no indicar nada más, entrará en el modo interactivo donde te mostrará todos los recursos que ha encontrado en el grupo elegido y, si pulsas la tecla r podrás ver cual es el recurso en terraform con el que lo va a mapear.

Por otro lado, si el recurso no está mapeado correctamente puedes pulsar la tecla Intro/Enter y específicar manualmente con el que se corresponde. Una vez que estés conforme con lo que se va a importar puedes pulsar la tecla w para comenzar el proceso.

Una vez termine, lo ideal es que accedas a la carpeta donde se ha generado la configuración y ejecutes terraform plan, con el fin de comprobar que todos los recursos están reflejados como deberían.

cd terraform && terraform plan

Todavía está en fase preview, por lo que es posible que tengas que realizar algún cambio en alguno de los recursos.

A partir de este momento podrás trabajar con esta configuración de la misma forma que venías haciendo con Terraform.

¡Saludos!