A Terraform konfigurálása az Azure Cloud Shellben a Bash használatával
A Terraform lehetővé teszi a felhőinfrastruktúra definícióját, előzetes verziójá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.
Ez a cikk bemutatja az Azure-ban a Terraformhoz való használatra történő hitelesítés lehetőségeit.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- A Cloud Shell konfigurálása
- Aktuális Azure-fiók megjelenítése
- A Terraform és az Azure hitelesítési forgatókönyveinek ismertetése
- Hitelesítés Microsoft-fiókkal a Cloud Shellből (Bash vagy PowerShell használatával)
- Hitelesítés Microsoft-fiókkal Windowsról (Bash vagy PowerShell használatával)
- Szolgáltatásnév létrehozása az Azure CLI használatával
- Szolgáltatásnév létrehozása az Azure PowerShell használatával
- Szolgáltatásnév hitelesítő adatainak megadása környezeti változókban
- Szolgáltatásnév hitelesítő adatainak megadása Terraform-szolgáltatói blokkban
1. A környezet konfigurálása
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
2. A Cloud Shell megnyitása
Ha már meg van nyitva egy Cloud Shell-munkamenet, ugorjon a következő szakaszra.
Lépjen az Azure Portalra
Ha szükséges, jelentkezzen be az Azure-előfizetésbe, és módosítsa az Azure-címtárat.
Nyissa meg a Cloud Shellt.
Ha korábban nem használta a Cloud Shellt, konfigurálja a környezeti és tárolási beállításokat.
Válassza ki a parancssori környezetet.
3. A Terraform legújabb verziójának telepítése az Azure Cloud Shellben
A Cloud Shell automatikusan frissül a Terraform legújabb verziójára. A frissítések azonban a kiadást követő néhány héten belül érkeznek. Ez a cikk bemutatja, hogyan töltheti le és telepítheti a Terraform aktuális verzióját.
Határozza meg a Cloud Shellben használt Terraform-verziót.
terraform version
Ha a Cloud Shellben telepített Terraform-verzió nem a legújabb verzió, megjelenik egy üzenet, amely jelzi, hogy a Terraform verziója elavult.
Ha jól használja a megadott verziót, ugorjon a következő szakaszra. Ellenkező esetben folytassa a következő lépésekkel.
Keresse meg a Terraform letöltési oldalát.
Görgessen le a Linux letöltési hivatkozásaihoz.
Vigye az egeret a 64 bites hivatkozásra. Ez a hivatkozás a Cloud Shellhez megfelelő legújabb, 64 bites Linux AMD-verzióhoz készült.
URL-cím másolása.
Futtassa
curl
, és cserélje le a helyőrzőt az előző lépésBEN szereplő URL-címre.curl -O <terraform_download_url>
Bontsa ki a fájlt.
unzip <zip_file_downloaded_in_previous_step>
Ha a könyvtár nem létezik, hozzon létre egy névvel ellátott
bin
könyvtárat.mkdir bin
Helyezze át a
terraform
fájlt abin
könyvtárba.mv terraform bin/
Zárja be és indítsa újra a Cloud Shellt.
Ellenőrizze, hogy a Terraform letöltött verziója szerepel-e először az elérési úton.
terraform version
4. Ellenőrizze az alapértelmezett Azure-előfizetést
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 az az account show-t az aktuális Microsoft-fiók és Azure-előfizetés ellenőrzéséhez.
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.
5. Terraform hitelesítése az Azure-ban
Terraform- és Azure-hitelesítési forgatókönyvek
A Terraform csak az Azure CLI-vel támogatja az Azure-ba történő hitelesítést. Az Azure PowerShell használatával történő hitelesítés nem támogatott. Ezért bár használhatja az Azure PowerShell-modult a Terraform-munka során, először hitelesítenie kell magát az Azure-ban az Azure CLI használatával.
Ez a cikk bemutatja, hogyan hitelesítheti a Terraformot az Azure-ban az alábbi helyzetekben. A Terraform Azure-beli hitelesítésének lehetőségeiről további információt az Azure CLI-vel végzett hitelesítés című témakörben talál.
- Hitelesítés Microsoft-fiókkal a Cloud Shell használatával (Bash vagy PowerShell használatával)
- Hitelesítés Microsoft-fiókkal Windows használatával (Bash vagy PowerShell használatával)
- Hitelesítés szolgáltatásnévvel:
- Ha nem rendelkezik egyszerű szolgáltatásnévvel, hozzon létre egy szolgáltatásnevet.
- Hitelesítés az Azure-ban környezeti változók használatával, vagy hitelesítés az Azure-ban a Terraform-szolgáltató blokk használatával
Hitelesítés az Azure-ban Egy Microsoft-fiókon keresztül
A Microsoft-fiók egy felhasználónév (e-mailhez és hitelesítő adataihoz társítva), amely a Microsoft-szolgáltatások – például az Azure – bejelentkezésére szolgál. Egy Microsoft-fiók társítható egy vagy több Azure-előfizetéshez, és ezek közül az egyik az alapértelmezett.
Az alábbi lépések bemutatják, hogyan:
- Interaktív bejelentkezés az Azure-ba Microsoft-fiókkal
- A fiók társított Azure-előfizetéseinek listázása (az alapértelmezettet is beleértve)
- Állítsa be az aktuális előfizetést.
Nyisson meg egy parancssort, amely hozzáfér az Azure CLI-hez.
Futtassa az bejelentkezést paraméterek nélkül, és kövesse az utasításokat az Azure-ba való bejelentkezéshez.
az login
Főbb pontok:
- A sikeres bejelentkezés
az login
után megjelenik a bejelentkezett Microsoft-fiókhoz társított Azure-előfizetések listája, beleértve az alapértelmezett előfizetést is.
- A sikeres bejelentkezés
Az aktuális Azure-előfizetés megerősítéséhez futtassa az az account show-t.
az account show
Egy adott Microsoft-fiókhoz tartozó Összes Azure-előfizetés nevének és azonosítójának megtekintéséhez futtassa az az account listát.
az account list --query "[?user.name=='<microsoft_account_email>'].{Name:name, ID:id, Default:isDefault}" --output Table
Főbb pontok:
- Cserélje le a
<microsoft_account_email>
helyőrzőt arra a Microsoft-fiók e-mail-címére, amelynek Azure-előfizetéseit listázni szeretné. - Élő fiókkal – például Hotmail vagy Outlook – előfordulhat, hogy meg kell adnia a teljes e-mail-címet. Ha például az e-mail-címe,
admin@hotmail.com
előfordulhat, hogy a helyőrzőt a következőrelive.com#admin@hotmail.com
kell cserélnie: .
- Cserélje le a
Egy adott Azure-előfizetés használatához futtassa az az account setet.
az account set --subscription "<subscription_id_or_subscription_name>"
Főbb pontok:
- Cserélje le a
<subscription_id_or_subscription_name>
helyőrzőt a használni kívánt előfizetés azonosítójára vagy nevére. - A hívás
az account set
nem jeleníti meg a megadott Azure-előfizetésre való váltás eredményét. Ezzel azonban ellenőrizheti,az account show
hogy az azure-előfizetés megváltozott-e. - Ha az előző lépésben futtatja a
az account list
parancsot, láthatja, hogy az alapértelmezett Azure-előfizetés a megadottaz account set
előfizetésre módosult.
- Cserélje le a
Egyszerű szolgáltatás létrehozása
Az Azure-szolgáltatásokat ( például a Terraformot) üzembe helyező vagy használó automatizált eszközöknek mindig korlátozott engedélyekkel kell rendelkezniük. Ahelyett, hogy az alkalmazások teljes jogosultsággal rendelkező felhasználóként jelentkezzenek be, az Azure egyszerű szolgáltatásneveket biztosít.
A leggyakoribb minta az, hogy interaktívan bejelentkezik az Azure-ba, létrehoz egy szolgáltatásnevet, teszteli a szolgáltatásnevet, majd ezt a szolgáltatásnevet használja a jövőbeli hitelesítéshez (interaktívan vagy a szkriptekből).
Szolgáltatásnév létrehozásához jelentkezzen be az Azure-ba. Miután egy Microsoft-fiókon keresztül hitelesítést végzett az Azure-ban, térjen vissza ide.
Ha szolgáltatásnevet hoz létre a Git Bashből, állítsa be a környezeti változót
MSYS_NO_PATHCONV
. (Ez a lépés nem szükséges a Cloud Shell használata esetén.)export MSYS_NO_PATHCONV=1
Főbb pontok:
- A környezeti változót globálisan (az
MSYS_NO_PATHCONV
összes terminál-munkamenethez) vagy helyileg (csak az aktuális munkamenethez) állíthatja be. Mivel a szolgáltatásnév létrehozása nem gyakran történik, a minta beállítja az aktuális munkamenet értékét. Ha globálisan szeretné beállítani ezt a környezeti változót, adja hozzá a beállítást a~/.bashrc
fájlhoz.
- A környezeti változót globálisan (az
Szolgáltatásnév létrehozásához futtassa az az ad sp create-for-rbac parancsot.
az ad sp create-for-rbac --name <service_principal_name> --role Contributor --scopes /subscriptions/<subscription_id>
Főbb pontok:
- Lecserélheti a
<service-principal-name>
környezetet egy egyéni névre, vagy teljesen kihagyhatja a paramétert. Ha kihagyja a paramétert, a szolgáltatásnév az aktuális dátum és idő alapján jön létre. - Sikeres befejezés után
az ad sp create-for-rbac
több értéket is megjelenít. AappId
következő lépésben a ,password
éstenant
az értékek lesznek használatban. - A jelszó nem kérhető le, ha elveszett. Ezért a jelszót biztonságos helyen kell tárolnia. Ha elfelejti a jelszavát, visszaállíthatja a szolgáltatásnév hitelesítő adatait.
- Ebben a cikkben egy közreműködői szerepkörrel rendelkező szolgáltatásnevet használunk. A szerepköralapú hozzáférés-vezérlési (RBAC-) szerepkörökről további információt az RBAC: Beépített szerepkörök című témakörben talál.
- A szolgáltatásnév létrehozásának kimenete bizalmas hitelesítő adatokat tartalmaz. Győződjön meg arról, hogy ezeket a hitelesítő adatokat nem tartalmazza a kódban, vagy nem ellenőrzi a hitelesítő adatokat a forrásvezérlőben.
- A szolgáltatásnév Azure CLI-vel történő létrehozásakor elérhető lehetőségekről további információt az Azure CLI-vel rendelkező Azure-szolgáltatásnév létrehozása című cikkben talál.
- Lecserélheti a
Szolgáltatásnév hitelesítő adatainak megadása környezeti változókban
Miután létrehozott egy egyszerű szolgáltatást, környezeti változókon keresztül megadhatja annak hitelesítő adatait a Terraformban.
Szerkessze a
~/.bashrc
fájlt a következő környezeti változók hozzáadásával.export ARM_SUBSCRIPTION_ID="<azure_subscription_id>" export ARM_TENANT_ID="<azure_subscription_tenant_id>" export ARM_CLIENT_ID="<service_principal_appid>" export ARM_CLIENT_SECRET="<service_principal_password>"
A
~/.bashrc
szkript végrehajtásához futtassasource ~/.bashrc
(vagy annak rövidített megfelelője. ~/.bashrc
). A szkript automatikus futtatásához kiléphet és újra megnyithatja a Cloud Shellt.. ~/.bashrc
A környezeti változók beállítása után az alábbi módon ellenőrizheti az értékeket:
printenv | grep ^ARM*
Főbb pontok:
- A környezeti változókhoz hasonlóan az Azure-előfizetési érték Terraform-szkriptből való eléréséhez használja a következő szintaxist:
${env.<environment_variable>}
Az érték eléréséhez például adja meg aARM_SUBSCRIPTION_ID
.${env.ARM_SUBSCRIPTION_ID}
- A Terraform végrehajtási terveinek létrehozása és alkalmazása módosításokat hajt végre a szolgáltatásnévhez társított Azure-előfizetésen. Ez a tény néha zavaró lehet, ha egy Azure-előfizetésbe van bejelentkezve, és a környezeti változók egy második Azure-előfizetésre mutatnak. Tekintsük meg a következő példát, hogy elmagyarázzuk. Tegyük fel, hogy két Azure-előfizetése van: SubA és SubB. Ha az aktuális Azure-előfizetés SubA (a rendszer által
az account show
meghatározott), míg a környezeti változók AlB-ra mutatnak, a Terraform által végrehajtott módosítások a SubB-en vannak. Ezért be kell jelentkeznie az AlB-előfizetésbe az Azure CLI-parancsok vagy az Azure PowerShell-parancsok futtatásához a módosítások megtekintéséhez.
Szolgáltatásnév hitelesítő adatainak megadása Terraform-szolgáltatói blokkban
Az Azure-szolgáltatói blokk szintaxist határoz meg, amely lehetővé teszi az Azure-előfizetés hitelesítési adatainak megadását.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>2.0"
}
}
}
provider "azurerm" {
features {}
subscription_id = "<azure_subscription_id>"
tenant_id = "<azure_subscription_tenant_id>"
client_id = "<service_principal_appid>"
client_secret = "<service_principal_password>"
}
# Your code goes here
Figyelem
Az Azure-előfizetés hitelesítő adatainak terraform konfigurációs fájlban való megadása kényelmes lehet , különösen teszteléskor. Nem ajánlott azonban a hitelesítő adatokat olyan világos szöveges fájlban tárolni, amelyet nem megbízható személyek tekinthetnek meg.
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
További lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: