Bereitstellen einer Container-Instanz in Azure

Chaknith Bin
Chaknith Bin
2. Juli 2024
Aktualisiert 19. November 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Verwenden Sie Terraform auf Azure, um den IronSecureDoc Docker-Container bereitzustellen und ihn mit einer öffentlichen IP-Adresse und einem FQDN verfügbar zu machen.

Voraussetzungen

Schritt 1: GitHub-Repository-Vorlage klonen

Wir haben das GitHub-Repository-Template fertig, das Sie hier klonen und sofort loslegen können:

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

Schritt 2: Ändern Sie alle Ressourcennamen

Ändern Sie alle Ressourcennamen in variables.tf

  • resource_group_name: Name der Ressourcengruppe.
  • resource_group_location: Standort der Ressourcengruppe. Sie können die Region aus REGIONS.md entnehmen. Verwenden Sie die zweite Spalte, um diese Variable auszufüllen.
  • container_group_name: Name der Containergruppe.
  • container_name: Name des Containers.
  • image_tag: Das Tag des Images, das bereitgestellt werden soll, kann latest oder eine beliebige Zahl sein.
  • Andere Variablen müssen nicht geändert werden.

Erstellen Sie secret.tfvars, um alle vertraulichen Daten zu enthalten, und füllen Sie die unten stehenden Variablen aus

Azure Container Registry

main.tf fügt unten nach dns_name_label = var.dns_name_label hinzu:

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

variables.tf fügt hinzu:

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."
  default     = "latest"
}

secret.tfvars fügt hinzu:

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

Docker-Hub

secret.tfvars fügt hinzu:

license_key         = "YOUR-LICENSE-KEY"

Schritt 3: Terraform initialisieren

Führen Sie terraform init aus, um den Terraform-Einsatz zu initialisieren. Dieser Befehl lädt den Azure-Anbieter herunter, der für die Verwaltung Ihrer Azure-Ressourcen erforderlich ist.

terraform init -upgrade

Schritt 4: Erstellen eines Terraform-Ausführungsplans

Führen Sie terraform plan aus, um einen Ausführungsplan zu erstellen.

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

Schritt 5: Anwendung eines Terraform-Ausführungsplans

Führen Sie terraform apply aus, um den Ausführungsplan auf Ihre Cloud-Infrastruktur anzuwenden.

terraform apply main.tfplan

Schritt 6: Überprüfen Sie die Ergebnisse

  1. Wenn Sie den Ausführungsplan anwenden, gibt Terraform die öffentliche IP-Adresse aus. Um die IP-Adresse erneut anzuzeigen, führen Sie terraform output aus.
  terraform output -raw container_ipv4_address

oder den FQDN anzeigen.

  terraform output -raw container_fqdn
  1. Verwenden Sie Postman oder curl zur Validierung. Das Ergebnis sollte pong zurückgeben.
  curl http://<container_ipv4_address>:8080/v1/document-services/ping

oder FQDN verwenden

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

Schritt 7: Zerstörung der Ressource

  • Einen Ausführungsplan für die Zerstörung von Ressourcen erstellen
terraform plan -destroy -var-files="secret.tfvars" -out main.tfplan
  • Anwendung eines Ausführungszerstörungsplans
terraform apply main.tfplan
Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.