Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előnézetét és üzembe helyezését. A Terraform használatával konfigurációs fájlokat hozhat létre HCL-szintaxissal. A HCL szintaxissal megadhatja a felhőszolgáltatót – például az Azure-t – és a felhőinfrastruktúra elemeit. A konfigurációs fájlok létrehozása után létrehoz egy végrehajtási tervet , amely lehetővé teszi az infrastruktúra változásainak előzetes megtekintését az üzembe helyezés előtt. A módosítások ellenőrzése után alkalmazza a végrehajtási tervet az infrastruktúra üzembe helyezésére.
Az azapi_data_plane_resource használatával kezelheti Azure adatsík erőforrásait a Terraformban. Ebben a példában tanúsítványkapcsolatokat konfigurál egy Azure Key Vaulthez.
Az adatsík-keretrendszer működésével és parent_id mintáival kapcsolatos alapfogalmakért tekintse meg az AzAPI adatsík-keretrendszerének megértését.
- Key Vault létrehozása az AzureRM-szolgáltatóval
- A
azapi_data_plane_resourcehasználata tanúsítványkapcsolatok konfigurálásához
Prerequisites
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egy ingyenes fiókot .
A Terraform konfigurálása: Ha még nem tette meg, konfigurálja a Terraformot az alábbi lehetőségek egyikével:
Amikor Microsoft-fiókkal jelentkezik be az Azure Portalra, a rendszer az adott fiók alapértelmezett Azure-előfizetését használja.
A Terraform automatikusan hitelesíti az alapértelmezett Azure-előfizetés adatait.
Futtassa a az account show parancsot az aktuális Microsoft-fiók és Azure-előfizetés ellenőrzésére.
az account show
A Terraformon végzett módosítások a megjelenített Azure-előfizetésben találhatók. Ha ezt szeretné, hagyja ki a cikk többi részét.
A Terraform-kód implementálása
Hozzon létre egy könyvtárat, amelyben tesztelheti a Terraform-mintakódot, és az aktuális könyvtárá teheti.
Hozzon létre egy
providers.tfnevű fájlt, és szúrja be a következő kódot:terraform { required_providers { azapi = { source = "Azure/azapi" version = "~> 2.0" } azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } random = { source = "hashicorp/random" version = "~> 3.0" } } } provider "azurerm" { features { key_vault { purge_soft_delete_on_destroy = true recover_soft_deleted_key_vaults = true } } } provider "azapi" {}Hozzon létre egy
variables.tfnevű fájlt, és szúrja be a következő kódot:variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random value to create a unique name." }Hozzon létre egy
main.tfnevű fájlt, és szúrja be a következő kódot:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "random_string" "kv_suffix" { length = 6 upper = false special = false } resource "azurerm_resource_group" "example" { location = var.resource_group_location name = random_pet.rg_name.id } data "azurerm_client_config" "current" {} resource "azurerm_key_vault" "example" { name = "kv-${random_string.kv_suffix.result}" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name tenant_id = data.azurerm_client_config.current.tenant_id sku_name = "standard" access_policy { tenant_id = data.azurerm_client_config.current.tenant_id object_id = data.azurerm_client_config.current.object_id certificate_permissions = [ "ManageContacts", ] } } resource "azapi_data_plane_resource" "certificate_contacts" { type = "Microsoft.KeyVault/vaults/certificates/contacts@7.3" parent_id = trimsuffix(trimprefix(azurerm_key_vault.example.vault_uri, "https://"), "/") name = "default" body = { contacts = [ { emailAddress = "admin@contoso.com" name = "Admin Contact" phone = "555-555-0100" }, { emailAddress = "ops@contoso.com" name = "Operations" } ] } }A következő főbb pontok a
azapi_data_plane_resource:- A
typemező az adatsík API formátumát<resource-type>@<api-version>használja. - Az
parent_idadatsík végpontjának állomásneve (azhttps://előtag nélkül), nem ARM-erőforrás-azonosító. - A
namemező azonosítja az adott erőforrást a szülőben. Key Vault tanúsítványpartnerek esetében az érték mindigdefault.
- A
Hozzon létre egy
outputs.tfnevű fájlt, és szúrja be a következő kódot:output "resource_group_name" { value = azurerm_resource_group.example.name } output "key_vault_name" { value = azurerm_key_vault.example.name } output "certificate_contacts" { value = azapi_data_plane_resource.certificate_contacts.output }
Futtassa a Terraform init parancsot a Terraform üzembe helyezésének inicializálásához. Ez a parancs letölti az Azure-erőforrások kezeléséhez szükséges Azure-szolgáltatót.
terraform init -upgrade
Főbb pontok:
- A
-upgradeparaméter frissíti a szükséges szolgáltatói beépülő modulokat a legújabb verzióra, amely megfelel a konfiguráció verziókorlátozásainak.
Végrehajtási terv létrehozásához futtassa a Terraform-tervet .
terraform plan -out main.tfplan
Főbb pontok:
- A
terraform planparancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-outparaméter lehetővé teszi a terv kimeneti fájljának megadását. A-outparaméter használatával biztosítható, hogy az ön által áttekintett terv pontosan az alkalmazott legyen.
Használja a terraform apply parancsot a végrehajtási terv felhőinfrastruktúrára való alkalmazásához.
terraform apply main.tfplan
Főbb pontok:
- A példaparancs
terraform applyfeltételezi, hogy korábban lefuttattad aterraform plan -out main.tfplanparancsot. - Ha másik fájlnevet adott meg a
-outparaméterhez, használja ugyanazt a fájlnevet aterraform applyhívásában. - Ha nem használta a
-outparamétert, hívja meg aterraform applyparaméterek nélkül.
Az eredmények ellenőrzése
Futtassa a az keyvault certificate contact list parancsot a tanúsítványpartnerek lekéréséhez.
az keyvault certificate contact list --vault-name <key_vault_name>
Erőforrások tisztítása
Ha már nincs szüksége a Terraformon keresztül létrehozott erőforrásokra, hajtsa végre az alábbi lépéseket:
Csinálja meg a terraform plan parancsot, és adja meg a
destroyjelzőt.terraform plan -destroy -out main.destroy.tfplanFőbb pontok:
- A
terraform planparancs létrehoz egy végrehajtási tervet, de nem hajtja végre. Ehelyett meghatározza, hogy milyen műveletek szükségesek a konfigurációs fájlokban megadott konfiguráció létrehozásához. Ez a minta lehetővé teszi annak ellenőrzését, hogy a végrehajtási terv megfelel-e az elvárásainak, mielőtt módosítanák a tényleges erőforrásokat. - Az opcionális
-outparaméter lehetővé teszi a terv kimeneti fájljának megadását. A-outparaméter használatával biztosítható, hogy az ön által áttekintett terv pontosan az alkalmazott legyen.
- A
A végrehajtási terv alkalmazásához futtassa a terraform apply parancsot.
terraform apply main.destroy.tfplan
Terraform hibaelhárítása az Azure platformon
A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása