A Terraform Azure-beli használatakor felmerülő gyakori problémák elhárítása

Ez a cikk a Terraform Azure-on való használatakor előforduló gyakori problémákat és lehetséges megoldásokat sorolja fel.

Ha a Terraformra jellemző problémába ütközik, használja a HashiCorp közösségi támogatási csatornáit.

HashiCorp Terraform specifikus támogatási csatornák

A szolgáltató regisztrációs állapota nem listázható

Hibaüzenet:

Hiba: A szolgáltatóregisztrációs állapot nem listázható, lehetséges, hogy ez érvénytelen hitelesítő adatok miatt van, vagy a szolgáltatásnév nem rendelkezik engedéllyel a Resource Manager API használatára, Azure-hiba: erőforrások. ProvidersClient#List: Hiba a következő kérésre válaszolva: StatusCode=403 – Eredeti hiba: autorest/azure: A szolgáltatás hibát adott vissza. Status=403 Code="AuthorizationFailed" Message="A "000000000-0000-0000-0000-00000000000" objektumazonosítójú ügyfél "000000000-0000-0000-0000-0000 A 0-00000000000000 nem rendelkezik engedéllyel a "Microsoft.Resources/subscriptions/subscriptions/providers/read" művelet végrehajtására az "/subscriptions/00000000-0000-0000-0000-00000000000" hatókörön keresztül, vagy a hatókör érvénytelen. Ha a hozzáférés nemrég lett engedélyezve, frissítse a hitelesítő adatait.”

Háttér: Ha Terraform-parancsokat futtat a Cloud Shellből, és meghatározott bizonyos Terraform-/Azure-környezeti változókat, időnként ütközések is megjelenhetnek. A környezeti változók és az általuk képviselt Azure-érték az alábbi táblázatban található:

Környezeti változó Azure-érték
ARM_SUBSCRIPTION_ID Azure-előfizetés azonosítója
ARM_TENANT_ID Microsoft-fiók bérlőazonosítója
ARM_CLIENT_ID Azure-szolgáltatásnév alkalmazásazonosítója
ARM_CLIENT_Standard kiadás CRET Azure-szolgáltatásnév jelszava

Ok: Az írás során a Cloud Shellben futó Terraform-szkript felülírja a környezeti és ARM_TENANT_ID a környezeti változókat az ARM_SUBSCRIPTION_ID aktuális Azure-előfizetés értékeinek használatával. Ennek eredményeképpen, ha a környezeti változók által hivatkozott szolgáltatásnév nem rendelkezik jogosultságokkal az aktuális Azure-előfizetéshez, a Terraform-műveletek sikertelenek lesznek.

Hiba történt az állapotzár beszerzésekor

Hibaüzenet:

Hiba: Hiba történt az állapotzár beszerzésekor; Hibaüzenet: 2 hiba történt:
* az állapotblob már zárolva van
* blob metaadatai "terraformlockid" üres volt
A Terraform egy állapotzárat szerez be, amely megvédi az állapotot attól, hogy egyszerre több felhasználó írja őket. Oldja meg a fenti problémát, és próbálkozzon újra. A legtöbb parancs esetében letilthatja a zárolást a "-lock=false" jelzővel, de ez nem ajánlott.

Háttér: Ha Terraform-parancsokat futtat egy Terraform-állapotfájlon, és ez a hiba az egyetlen megjelenő üzenet, az alábbi okok jelentkezhetnek. Helyi és távoli állapotfájlokra vonatkozik.

Ok: Ennek a hibának két lehetséges oka lehet. Az első az, hogy egy Terraform-parancs már fut az állapotfájlon, és zárolást kényszerített a fájlra, így semmi sem törik meg. A második lehetséges ok az, hogy a parancsok futtatásakor megszakadt a kapcsolat az állapotfájl és a parancssori felület között. Ez a megszakítás leggyakrabban távoli állapotfájlok használatakor fordul elő.

Megoldás: Először győződjön meg arról, hogy még nem futtat parancsokat az állapotfájlon. Ha helyi állapotfájllal dolgozik, ellenőrizze, hogy vannak-e parancsokat futtató termináljai. Másik lehetőségként ellenőrizze az üzembehelyezési folyamatokat, és ellenőrizze, hogy a futó valami használja-e az állapotfájlt. Ha ez nem oldja meg a problémát, lehetséges, hogy a második ok aktiválta a hibát. Egy Azure Storage-fióktárolóban tárolt távoli állapotfájl esetén keresse meg a fájlt, és használja a bérlet megszakítása gombot.

Screenshot that shows the Azure Storage container Break lease button.

Ha más háttérrendszereket használ az állapotfájl tárolásához, a javaslatokért tekintse meg a HashiCorp dokumentációját.

VPN-hibák

A VPN-hibák megoldásáról további információt a hibrid VPN-kapcsolatok hibaelhárítása című cikkben talál.