Terraform-konfiguráció és szkriptelés
Ebben a leckében a Terraform konfigurációját és szkriptelését tekintjük át.
Miért a Terraform?
Infrastruktúra-kezelőként szüksége van egy eszközre az Azure-infrastruktúra kiépítéséhez és kezeléséhez. Az infrastruktúrát is kódként szeretné használni az Azure-erőforrások topológiáját leíró konfigurációs fájlokban.
A HashiCorp Terraform nagyszerűen üzembe helyezi az infrastruktúrát a felhőszolgáltatók között. Konzisztens eszközöket biztosít a fejlesztőknek az egyes infrastruktúra-definíciók kezeléséhez.
Infrastruktúra-kezelés automatizálása
Sablonalapú Terraform-konfigurációs fájlok használatával megismételhető és kiszámítható módon definiálhat, építhet ki és konfigurálhat Azure-erőforrásokat. Ez az automatizálás számos előnnyel jár:
- Csökkenti az emberi hibák lehetőségét az infrastruktúra üzembe helyezése és kezelése során.
- Ugyanazt a sablont többször is üzembe helyezi azonos fejlesztési, tesztelési és éles környezetek létrehozásához.
- Igény szerinti létrehozással csökkenti a fejlesztési és tesztelési környezetek költségeit.
Az infrastruktúra változásainak megismerése azok alkalmazása előtt
Mivel az erőforrás-topológia egyre összetettebbé válik, nehéz lehet megérteni az infrastruktúra változásainak jelentését és hatását.
A Terraform használatával alkalmazásuk előtt ellenőrizheti és megtekintheti az infrastruktúra változásait. A csapattagok hatékonyabban működhetnek együtt a javasolt módosítások és azok hatásának a fejlesztési folyamat korai szakaszában történő megismerésével.
Terraform konfigurációs fájlok
A konfigurációs fájlok létrehoznak egy végrehajtási tervet, és azt, hogy a terv hogyan éri el a kívánt állapotot. A Terraform ezután létrehozhatja a leírt infrastruktúrát. A konfiguráció változásakor a Terraform meghatározhatja, hogy mi változott, és növekményes végrehajtási terveket hozhat létre.
A Terraform konfigurációs fájljai a YAML-hez hasonló saját konfigurációs nyelvet használnak, amely lehetővé teszi az infrastruktúra leírását.
Konfigurációs fájlokat HashiCorp Configuration Language (HCL) szintaxissal hozhat létre. A HCL deklaratív, és nem a cél elérésének lépéseit írja le. 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 egyszerű szöveges fájlokként vannak tárolva .tf kiterjesztéssel. Ezek a következők:
- main.tf: (kötelező) Meghatározza a fő struktúrát, a teljes infrastruktúra üzembe helyezését közvetlenül vagy a modulok hívásain keresztül
- outputs.tf: Egy Terraform-modul minden visszatérési értékét azonosítja
- variables.tf: Meghatározza a változókat a main.tf, függetlenül attól, hogy szükség van-e rájuk, vagy sem
Modulok
A Terraform-erőforrásokat egy modulba csoportosíthatja, amely nagyobb konfigurációs egységet hoz létre. Ezek a modulok olyan konfigurációs fájlok, amelyek egyetlen könyvtárban vannak tárolva. Az egyszerű konfiguráció egyetlen könyvtárból áll egy vagy több .tf fájllal.
A modulok számos előnnyel járnak. Például a modulok:
- Segítség a projekt rendszerezéséhez.
- Az összetettség beágyazása.
- Lehetővé teszi a gyakori feladatok újbóli felhasználását.
- Konzisztenciát biztosít, és győződjön meg arról, hogy a bevált eljárásokat követi.
A main.tf fájl
A main.tf fájl tartalmazza a modul fő konfigurációs adatait. Ezt a fájlt gyakran Terraform-tervnek nevezik. A Terraform-terv meghatározza a szükséges infrastruktúra-erőforrásokat. A fájlt tetszés szerint nevezheti el, de általában main.tf.
Terraform munkafolyamat
A Terraform az alapvető "inicializálás, tervezés és alkalmazás" munkafolyamatot javasolja az automatizáláshoz. Ez a munkafolyamat az összes Terraform CI/CD-műveletet futtatja új és frissített Git-lekéréses kérelmeken.
A munkafolyamat alapvető műveletei a következők:
- Init: Munkakönyvtár inicializálása Terraform-konfigurációs fájlokkal
- Terv: Terv készítése az erőforrások módosítására az aktuális konfigurációnak megfelelően
- Alkalmazás: A terv által leírt módosítások alkalmazása
Állapot
Az állapot lehetővé teszi a Terraform számára, hogy megtudja, milyen Azure-erőforrásokat vehet fel, frissíthet vagy törölhet.
A Terraform állapotot használ a tervek létrehozásához és az infrastruktúra módosításához. Minden művelet előtt a Terraform frissít, hogy frissítse az állapotot a valódi infrastruktúrával.
Az állapot alapértelmezés szerint egy terraform.tfstate nevű helyi szövegfájlban van tárolva. A Terraform a modulban definiált munkafolyamat-műveletek használatával kezeli ezt a fájlt.
Az állapotot távolról is tárolhatja, ez a módszer jobban működik csapatkörnyezetben. Az állapot távolról történő kezelésével kapcsolatos további információkért tekintse meg a modul végén található Összegző leckét.
Következő lépések
A következő leckében bemutatjuk, hogyan használhatja a Terraformot a GitHub Actions vagy az Azure Pipelines használatával az alkalmazások kiépítéséhez és üzembe helyezéséhez.