Terraform-konfiguráció és szkriptelés

Befejeződött

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

Képernyőkép a Terraform konfigurációs struktúrájáról.

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 Terraform-munkafolyamat diagramja, amely az Init, a Plan és az Apply alapvető műveleteket jeleníti meg.

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.