Deploy a Container Instance in Azure

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

Use Terraform on Azure to deploy the IronSecureDoc Docker container and make it available with a public IP address and FQDN.

Prerequisites

Step 1: Clone GitHub Repository Template

We have the GitHub Repository template ready for you to clone and get started immediately here:

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

Step 2: Modify All Resource Names

Modify All Resource Names in variables.tf

  • resource_group_name: Name of the resource group.
  • resource_group_location: Location of the resource group. You can find the region from REGIONS.md and use the second column to fill in this variable.
  • container_group_name: Name of the container group.
  • container_name: Name of the container.
  • image_tag: The tag of the image to deploy; it can be latest or any specific version number.
  • Other variables do not need to be changed.

Create secret.tfvars to Contain All Sensitive Data

Populate the following variables in secret.tfvars.

Azure Container Registry

Append to main.tf after dns_name_label = var.dns_name_label:

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

Add to 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."
}

Add to secret.tfvars:

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

Docker Hub

Add to secret.tfvars:

license_key = "YOUR-LICENSE-KEY"

Step 3: Initialize Terraform

Run terraform init to initialize the Terraform deployment. This command downloads the Azure provider required to manage your Azure resources.

terraform init -upgrade
terraform init -upgrade
SHELL

Step 4: Create a Terraform Execution Plan

Run terraform plan to create an execution plan.

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

Step 5: Apply a Terraform Execution Plan

Run terraform apply to apply the execution plan to your cloud infrastructure.

terraform apply main.tfplan
terraform apply main.tfplan
SHELL

Step 6: Verify the Results

  1. When you apply the execution plan, Terraform outputs the public IP address. To display the IP address again, run terraform output.

    terraform output -raw container_ipv4_address
    terraform output -raw container_ipv4_address
    SHELL

    Or display the FQDN.

    terraform output -raw container_fqdn
    terraform output -raw container_fqdn
    SHELL
  2. Use Postman or curl to validate. The expected result should return pong.

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

    Or use the FQDN.

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

Step 7: Destroy the Resource

  • Create an execution plan for destroying the resource.

    terraform plan -destroy -var-file="secret.tfvars" -out main.tfplan
    terraform plan -destroy -var-file="secret.tfvars" -out main.tfplan
    SHELL
  • Apply an execution destroy plan.

    terraform apply main.tfplan
    terraform apply main.tfplan
    SHELL

Questions Fréquemment Posées

Comment déployer un conteneur Docker dans Azure en utilisant Terraform ?

Pour déployer un conteneur Docker dans Azure à l'aide de Terraform, vous devez cloner le modèle de répertoire GitHub pour IronSecureDoc, modifier les noms des ressources dans le `variables.tf`, et créer un fichier `secret.tfvars` avec des données sensibles. Ensuite, initialisez le déploiement avec terraform init, et créez et appliquez un plan d'exécution en utilisant terraform plan et terraform apply.

Quelles sont les étapes nécessaires pour configurer Terraform pour un déploiement Azure ?

Tout d'abord, installez et configurez Terraform, puis authentifiez-le à Azure. Clonez le répertoire GitHub spécifique pour IronSecureDoc, modifiez les noms des ressources dans le fichier `variables.tf` et gérez les données sensibles dans `secret.tfvars`. Enfin, initialisez Terraform et créez un plan d'exécution pour le déploiement.

Quel est le rôle de l'Azure Container Registry dans ce déploiement ?

Azure Container Registry est utilisé pour stocker les images Docker. Vous devez ajouter les identifiants du registre dans le fichier `main.tf` et spécifier les informations du registre dans `variables.tf` et `secret.tfvars` pour que le déploiement accède et déploie les images Docker nécessaires.

Comment puis-je vérifier si mon déploiement Terraform dans Azure est réussi ?

Après avoir appliqué le plan d'exécution Terraform, exécutez terraform output pour obtenir l'adresse IP publique ou le FQDN. Utilisez des outils comme Postman ou curl pour envoyer une requête ping au service. Un déploiement réussi retournera 'pong'.

Quelle commande est utilisée pour initialiser Terraform pour les déploiements Azure ?

Pour initialiser Terraform pour les déploiements Azure, utilisez la commande terraform init -upgrade. Cela télécharge les plugins fournisseurs nécessaires pour gérer les ressources Azure.

Comment gérer les données sensibles dans les configurations Terraform ?

Les données sensibles telles que les identifiants du registre et les clés de licence doivent être stockées dans un fichier `secret.tfvars`. Ce fichier est référencé lors des processus de planification et d'application de Terraform pour gérer de manière sécurisée les informations sensibles.

Quel est le processus pour détruire les ressources déployées dans Azure à l'aide de Terraform ?

Pour détruire les ressources déployées dans Azure à l'aide de Terraform, créez un plan d'exécution de destruction avec terraform plan -destroy -var-file='secret.tfvars' -out main.tfplan et appliquez-le en utilisant terraform apply main.tfplan.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Version : 2024.10 vient de sortir