Articles

állapot áttelepítése Terraform felhőbe

Posted by admin

a Terraform CLI jelenlegi felhasználójaként Ön felelős az állapotfájl fenntartásáért a felhőinfrastruktúra igazságforrásaként. A helyi állapotfájlt áttelepítheti a Terraform felhőbe anélkül, hogy megszakítaná vagy újra létrehozná a meglévő infrastruktúrát.

Figyelem: Amikor állapotfájlt tölt fel a Terraform felhőbe az oktatóanyag lépéseinek megfelelően, mindig a Terraform CLI ugyanazt a verzióját használja, amelyet az erőforrások létrehozásához használt. A Terraform újabb verziójának használata frissítheti az állapotfájlt, ami az állapotfájl sérülését okozhatja.

“előfeltételek

ez az oktatóanyag feltételezi, hogy rendelkezik a következőkkel:

  • a Terraform CLI helyileg telepítve
  • egy Terraform Felhőfiók

Megjegyzés: Mivel a remote háttérprogram nem támogatott a Terraform régebbi verziójában, 0.11.13 vagy újabb verziót kell használnia az állapot Terraform felhőbe történő áttelepítéséhez. Az ebben az oktatóanyagban szereplő kivonatok a 0.12 szintaxist használják.

ha nincs helyben telepítve a Terraform, akkor ezt az oktatóanyagot egy interaktív laboratóriumban töltheti ki a webböngészőből. Indítsa el itt.

“állapot létrehozása

Kezdje a GitHub repository klónozásával.

$ git clone https://github.com/hashicorp/learn-state-migration

másolás

ezután váltson a könyvtárba.

$ cd learn-state-migration

másolás

tekintse át a main.tf fájlt a munkakönyvtárban, hogy áttekintést kapjon a létrehozni kívánt erőforrásokról. Ez a konfiguráció a random_pet erőforrást használja egy véletlenszerű kisállat név létrehozására és kiadására egy adott számú szóval. A név hosszát a name_length változó értéke határozza meg, amely alapértelmezés szerint 3.

valós konfigurációban további változók is lehetnek, például a felhőplatform hitelesítő adatai egy .tfvars fájlban vannak meghatározva. Az állapotfájl áttelepítése után az oktatóanyag későbbi részében ismertetjük, hogyan állíthatja be ezeket az értékeket a Terraform Cloud munkaterületen.

## Terraform configurationterraform { required_providers { random = { source = "hashicorp/random" version = "3.0.1" } } required_version = "~> 0.14"}variable "name_length" { description = "The number of words in the pet name" default = "3"}resource "random_pet" "pet_name" { length = var.name_length separator = "-"}output "pet_name" { value = random_pet.pet_name.id}

másolja a

könyvtár inicializálását.

$ terraform init

Copy

a Terraform inicializálása után alkalmazza a konfigurációt és hagyja jóvá a futtatást az “igen” beírásával a parancssorba.

$ terraform apply

Copy

Terraform fog kiadni egy három szót véletlenszerűen generált kisállat nevét.

“állítsa be a távoli háttérprogramot

most, hogy rendelkezik helyi állapotfájllal, létre kell hoznia egy háttérkód-blokkot a konfigurációban. A háttérprogramok megmondják a Terraformnak, hogy hol kell betölteni és menteni az állapotfájlt.

a Terraform alapértelmezés szerint a helyi háttérprogramot használja, ha a konfigurációban nem határoz meg kifejezetten háttérkód-blokkot. A helyi háttérprogram terraform.tfstate fájlként menti az állapotát abban a könyvtárban, ahol a terraform applyfuttatja. Az állapotfájlok Terraform felhőbe történő áttelepítéséhez adjon meg egy remote háttérprogramot a konfigurációban egy új kódblokk hozzáadásával a main.tf fájl elejéhez.

terraform { required_providers { random = { source = "hashicorp/random" version = "3.0.1" } } required_version = "~> 0.14" backend "remote" { hostname = "app.terraform.io" organization = "<YOUR-ORG-NAME>" workspaces { name = "state-migration" } }}

másolás

cserélje le a szervezet és a munkaterületek attribútumértékeit a Terraform Felhőszervezet nevére és a kívánt munkaterület nevére. Míg a háttér stanzában definiált szervezetnek már léteznie kell, a munkaterületnek nem kell; a Terraform Cloud szükség esetén létrehozza. Ha úgy dönt, hogy már létező munkaterületet használ, akkor a munkaterületnek nem lehetnek meglévő állapotai.

Megjegyzés: Ha ismeri a Terraform futtatását a CLI használatával, akkor lehet, hogy a Terraform munkaterületeket használta. A Terraform Cloud munkaterületek másképp viselkednek, mint a Terraform CLI munkaterületek. A Terraform CLI munkaterületek lehetővé teszik több állapotfájl létezését egyetlen könyvtárban, lehetővé téve egy konfiguráció használatát több környezetben. A Terraform Cloud munkaterületek mindent tartalmaznak, ami egy adott infrastruktúra-készlet kezeléséhez szükséges, és különálló munkakönyvtárakként működnek.

“hitelesítés Terraform Cloud

most, hogy meghatározta a backend, meg kell hitelesítenie a Terraform Cloud annak érdekében, hogy folytassa az inicializálás. A Terraform Cloud használatával történő hitelesítéshez futtassa a terraform login alparancsot, és kövesse az utasításokat a bejelentkezéshez.

Megjegyzés: Ha a Terraform 0.12.21 előtti verzióját használja, a terraform login parancs nem érhető el. Ehelyett állítson be egy CLI konfigurációs fájlt a hitelesítéshez.

$ terraform loginTerraform will request an API token for app.terraform.io using your browser.If login is successful, Terraform will store the token in plain text inthe following file for use by subsequent commands: /Users/username/.terraform.d/credentials.tfrc.jsonDo you want to proceed? Only 'yes' will be accepted to confirm. Enter a value:

Copy

válaszoljon a megerősítő kérdésre egy yes – vel.

a bejelentkezéssel kapcsolatos részletesebb utasításokat a bejelentkezési oktatóanyagban találja.

“a

állapotfájl áttelepítése miután hitelesítette a remote háttérprogramot, készen áll a helyi állapotfájl áttelepítésére a Terraform felhőbe. A migráció megkezdéséhez indítsa újra. Ennek hatására a Terraform felismeri a megváltozott háttérkonfigurációt.

$ terraform initInitializing the backend...Do you want to copy existing state to the new backend? Pre-existing state was found while migrating the previous "local" backend to the newly configured "remote" backend. No existing state was found in the newly configured "remote" backend. Do you want to copy this state to the new "remote" backend? Enter "yes" to copy and "no" to start with an empty state. Enter a value:

Copy

az újraindítás során a Terraform felszólít arra, hogy másolja az állapotfájlt az új háttérprogramba. Írja be a yes értéket, és a Terraform áttelepíti az állapotot a helyi gépről a Terraform felhőbe.

” konfigurálja a Terraform Cloud munkaterületet

miután áttelepítette az állapotát a Terraform Cloud webes felhasználói felületére, jelentkezzen be a Terraform Cloud webes felhasználói felületbe, keresse meg a munkaterület nevét a háttérkonfigurációban meghatározottak szerint, majd kattintson rá. Keresse meg a munkaterület” Államok ” lapját, és tekintse meg az első műveletet a munkaterületen belül.

a Terraform Cloud munkaterület "Államok" lapjának nézete

ne feledje, hogy a konfigurációnak van egy változója, amelyet hozzá kell adnia az új munkaterülethez. Kattintson a munkaterület” változók “fülére, majd a”változó hozzáadása” gombra.Írja be a változó nevét, name_length, kulcsként. Ezután adjon meg egy új értéket, 5, és mentse el a változót.

a Terraform Cloud workspace változók lapja egy változóval hozzáadva

valós konfigurációkhoz adja hozzá a felhőplatform hitelesítő adatait és bármely más konfigurációs változót a munkaterülethez is.

“Futtatás kezdeményezése az új munkaterületen

miután ellenőrizte, hogy az állapot átkerült-e a Terraform Cloud munkaterületre, távolítsa el a helyi állapotfájlt.

$ rm terraform.tfstate

másolás

új Futtatás alkalmazása.

$ terraform apply

Copy

a Terraform a Terraform felhőből származó naplókat streameli, és a Terraform Cloud felhasználói felületén egy hivatkozást biztosít a futtatáshoz. Új értéket állít be a name_length változóhoz, így az erőforrás az új paramétereknek megfelelő értékkel lesz helyettesítve.

 a Futtatás várakozó megerősítésének képe, a napló kijelenti, hogy az erőforrás le lesz cserélve

“következő lépések

Pusztítsd el az oktatóanyaghoz létrehozott erőforrásokat úgy, hogy először rákattintasz a”Beállítások” opcióra a Terraform Cloud munkaterületen, kiválasztod a “megsemmisítés és Törlés” lehetőséget, biztosítva, hogy a “tervek megsemmisítésének engedélyezése” jelölőnégyzet be legyen jelölve, majd rákattintasz a “sor megsemmisítési terv”gombra.

az erőforrások megsemmisítése után térjen vissza a “Destruction andDeletion” oldalra, majd kattintson a “Delete from Terraform Cloud” gombra a munkaterület törléséhez.

ebben az oktatóanyagban egy állapotfájlt áttelepített a helyi gépről egy Terraform felhő munkaterületre. Ha meg szeretné tudni, hogyan lehet több helyi munkaterület állapotfájljait áttelepíteni, vagy korlátozni a munkaterület hozzáférését egy adott csapathoz, olvassa el az alábbi dokumentációt.

  • állapot áttelepítése több helyi munkaterületről
  • munkaterület-hozzáférés kezelése

ha nagyszámú állapotfájl van, amelyet át szeretne költöztetni a Terraform felhőbe, fontolja meg a Terraform Cloud API használatát. Az ÁLLAPOTVÁLTOZATOK API használatával történő feltöltéséről az Állapotverzió API dokumentációjában olvashat.

Related Post

Leave A Comment