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.
A cikk a következő Terraform- és Terraform-szolgáltatói verziókkal lett tesztelve:
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.
A AzAPI Terraform szolgáltató segítségével kezelheti az AzureRM által még nem támogatott Azure szolgáltatások új funkcióit. Ebben a példában a azapi_update_resource használatával konfigurálja Azure Event Hubs hálózati szabályokat.
- Event Hubs-névtér és szabály létrehozása az AzureRM használatával
- A névtér frissítése hálózati szabályokkal az AzAPI használatával
- Véletlenszerű név létrehozása az Event Hubs-névtérhez
- Azure-erőforráscsoport és a szükséges hálózati és Event Hubs-erőforrások létrehozása az AzureRM-szolgáltatóval
- Hálózati szabálykészlet hozzáadása az erőforrásokhoz az
azurerm_eventhub_namespaceAzAPI-szolgáltatóval
Megjegyzés:
A cikkben szereplő példakód az Azure Terraform GitHub-adattárban található.
Előfeltételek
- 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 = "=0.1.0" } azurerm = { source = "hashicorp/azurerm" version = "=3.0.2" } random = { source = "hashicorp/random" version = "=3.1.2" } } } provider "azapi" { } provider "azurerm" { features {} } provider "random" { }Hozzon létre egy
main.tfnevű fájlt, és szúrja be a következő kódot:resource "azurerm_resource_group" "qs101" { name = "rg-qs101-eh-rules" location = "westus2" } resource "azurerm_virtual_network" "qs101" { name = "myvnet" location = azurerm_resource_group.qs101.location resource_group_name = azurerm_resource_group.qs101.name address_space = ["172.17.0.0/16"] dns_servers = ["10.0.0.4", "10.0.0.5"] } resource "azurerm_subnet" "qs101" { name = "default" resource_group_name = azurerm_resource_group.qs101.name virtual_network_name = azurerm_virtual_network.qs101.name address_prefixes = ["172.17.0.0/24"] service_endpoints = ["Microsoft.EventHub"] } resource "random_pet" "qs101_namespace" { length = 3 separator = "" } resource "azurerm_eventhub_namespace" "qs101" { name = random_pet.qs101_namespace.id location = azurerm_resource_group.qs101.location resource_group_name = azurerm_resource_group.qs101.name sku = "Standard" capacity = 2 }Hozzon létre egy
main-generic.tfnevű fájlt, és szúrja be a következő kódot:# AzAPI update resource is used to enable Network Rule sets on Event Hub namespace resource "azapi_update_resource" "qs101" { type = "Microsoft.EventHub/namespaces/networkRuleSets@2021-11-01" name = "default" parent_id = azurerm_eventhub_namespace.qs101.id body = jsonencode({ properties = { defaultAction = "Deny" publicNetworkAccess = "Enabled" virtualNetworkRules = [ { ignoreMissingVnetServiceEndpoint = false subnet = { # API bug, returned id replaced `resourceGroups` with `resourcegroups` id = replace(azurerm_subnet.qs101.id, "resourceGroups", "resourcegroups") } } ] ipRules = [ { action = "Allow" ipMask = "1.1.1.1" } ] } }) }
Inicializálja a Terraformot
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.
Terraform végrehajtási terv létrehozása
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.
A Terraform végrehajtási terv alkalmazása
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
A(z) eventhubs namespace network-rule-set show parancsot futtatva megjelenítheti az Event Hubs-névtér hálózati szabályait.
az eventhubs namespace network-rule show --resource-group <resource_group_name> --namespace-name <namespace_name>
Főbb pontok:
- Az erőforráscsoport neve és az Event Hubs névtérneve megjelenik a
terraform applykimenetben.
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
A Terraform hibaelhárítása az Azure-ban
A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása