Implementar una instancia de contenedor de C# en Azure

This article was translated from English: Does it need improvement?
Translated
View the article in English

Usa Terraform en Azure para desplegar el contenedor Docker de IronSecureDoc y hacerlo disponible con una dirección IP pública y FQDN.

Requisitos previos

Paso 1: Clonar la plantilla del repositorio de GitHub

Tenemos la plantilla del Repositorio de GitHub lista para que la clones y comiences de inmediato aquí:

https://github.com/iron-software/IronSecureDoc-Terraform/

Paso 2: Modificar todos los nombres de los recursos

Modificar todos los nombres de recursos en variables.tf

  • resource_group_name: Nombre del grupo de recursos.
  • resource_group_location: Ubicación del grupo de recursos. Puedes encontrar la región en REGIONS.md y usar la segunda columna para completar esta variable.
  • container_group_name: Nombre del grupo de contenedores.
  • container_name: Nombre del contenedor.
  • image_tag: La etiqueta de la imagen a desplegar; puede ser latest o cualquier número de versión específica.
  • No es necesario cambiar otras variables.

Cree secret.tfvars para contener todos los datos confidenciales

Rellena las siguientes variables en secret.tfvars.

Registro de contenedores de Azure

Añadir a main.tf después de dns_name_label = var.dns_name_label:

image_registry_credential {
  server   = var.registry_server
  username = var.registry_username
  password = var.registry_password
}

Añadir a variables.tf:

variable "registry_server" {
  type        = string
  sensitive   = false
  description = "The server for the container registry. Required if the image is stored in a private registry."
}

variable "registry_username" {
  type        = string
  sensitive   = true
  description = "Username for the container registry. Required if the image is stored in a private registry."
}

variable "registry_password" {
  type        = string
  sensitive   = true
  description = "Password for the container registry. Required if the image is stored in a private registry."
}

Añadir a secret.tfvars:

registry_server   = "<registry-name>.azurecr.io"
registry_username = "YOUR-REGISTRY-USERNAME"
registry_password = "YOUR-REGISTRY-PASSWORD"
license_key       = "YOUR-LICENSE-KEY"

Centro de Docker

Añadir a secret.tfvars:

license_key = "YOUR-LICENSE-KEY"

Paso 3: Inicializar Terraform

Ejecuta terraform init para inicializar el despliegue de Terraform. Este comando descarga el proveedor de Azure necesario para gestionar tus recursos de Azure.

terraform init -upgrade
terraform init -upgrade
SHELL

Paso 4: Crear un plan de ejecución de Terraform

Ejecuta terraform plan para crear un plan de ejecución.

terraform plan -var-file="secret.tfvars" -out main.tfplan
terraform plan -var-file="secret.tfvars" -out main.tfplan
SHELL

Paso 5: Aplicar un plan de ejecución de Terraform

Ejecuta terraform apply para aplicar el plan de ejecución a tu infraestructura en la nube.

terraform apply main.tfplan
terraform apply main.tfplan
SHELL

Paso 6: Verificar los resultados

  1. Al aplicar el plan de ejecución, Terraform proporciona la dirección IP pública. Para visualizar nuevamente la dirección IP, ejecuta terraform output.

    terraform output -raw container_ipv4_address
    terraform output -raw container_ipv4_address
    SHELL

    O muestra el FQDN.

    terraform output -raw container_fqdn
    terraform output -raw container_fqdn
    SHELL
  2. Usa Postman o curl para validar. El resultado esperado debería devolver pong.

    curl http://<container_ipv4_address>:8080/v1/document-services/ping
    curl http://<container_ipv4_address>:8080/v1/document-services/ping
    SHELL

    O utiliza el FQDN.

    curl http://<container_fqdn>:8080/v1/document-services/ping
    curl http://<container_fqdn>:8080/v1/document-services/ping
    SHELL

Paso 7: Destruir el recurso

  • Crea un plan de ejecución para destruir el recurso.

    terraform plan -destroy -var-file="secret.tfvars" -out main.tfplan
    terraform plan -destroy -var-file="secret.tfvars" -out main.tfplan
    SHELL
  • Aplica un plan de ejecución de destrucción.

    terraform apply main.tfplan
    terraform apply main.tfplan
    SHELL

Preguntas Frecuentes

¿Cómo despliego un contenedor Docker en Azure usando Terraform?

Para desplegar un contenedor Docker en Azure usando Terraform, necesita clonar la plantilla del repositorio GitHub para IronSecureDoc, modificar los nombres de los recursos en `variables.tf`, y crear un archivo `secret.tfvars` con datos sensibles. Luego, inicialice el despliegue con terraform init y cree y aplique un plan de ejecución usando terraform plan y terraform apply.

¿Cuáles son los pasos necesarios para configurar Terraform para el despliegue en Azure?

Primero, instale y configure Terraform, luego autentíquelo con Azure. Clone el repositorio específico de GitHub para IronSecureDoc, modifique los nombres de los recursos en el archivo `variables.tf` y gestione los datos sensibles en `secret.tfvars`. Finalmente, inicialice Terraform y cree un plan de ejecución para el despliegue.

¿Cuál es el papel del Registro de Contenedores de Azure en este despliegue?

El Registro de Contenedores de Azure se utiliza para almacenar las imágenes Docker. Necesita añadir las credenciales del registro en el archivo `main.tf` y especificar la información del registro en `variables.tf` y `secret.tfvars` para que el despliegue acceda y despliegue las imágenes Docker necesarias.

¿Cómo puedo verificar si mi despliegue de Terraform en Azure es exitoso?

Después de aplicar el plan de ejecución de Terraform, ejecute terraform output para obtener la dirección IP pública o FQDN. Use herramientas como Postman o curl para enviar una solicitud de ping al servicio. Un despliegue exitoso retornará 'pong'.

¿Qué comando se usa para inicializar Terraform para despliegues en Azure?

Para inicializar Terraform para despliegues en Azure, use el comando terraform init -upgrade. Esto descarga los plugins de proveedor necesarios para gestionar recursos de Azure.

¿Cómo manejo los datos sensibles en las configuraciones de Terraform?

Los datos sensibles como credenciales de registro y claves de licencia deben almacenarse en un archivo `secret.tfvars`. Este archivo se referencia durante los procesos de planificación y aplicación de Terraform para gestionar de manera segura la información sensible.

¿Cuál es el proceso para destruir recursos desplegados en Azure usando Terraform?

Para destruir recursos desplegados en Azure usando Terraform, cree un plan de ejecución de destrucción con terraform plan -destroy -var-file='secret.tfvars' -out main.tfplan y aplíquelo usando terraform apply main.tfplan.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Version: 2024.10 recién lanzado