Articles

siirrä tila Terraform Cloudiin

Posted by admin

nykyisenä Terraform CLI: n käyttäjänä olet vastuussa tilatiedoston ylläpitämisestä totuuden lähteenä pilvi-infrastruktuurillesi. Voit siirtää paikallisen tilatiedoston Terraform Cloudiin keskeyttämättä tai luomatta olemassa olevaa infrastruktuuriasi uudelleen.

varoitus: Kun lataat tilatiedoston Terraform-pilveen tämän opetusohjelman ohjeiden mukaisesti, käytä aina samaa versiota terraform CLI: stä, jota käytit resurssien luomiseen. Käyttämällä uudempaa versiota Terraformista voi päivittää valtion tiedoston ja aiheuttaa valtion tiedoston korruptiota.

”Edeltävät opinnot

tämä opetusohjelma olettaa, että sinulla on seuraavat:

  • terraform CLI asennettiin paikallisesti
  • Terraform-Pilvitili

huomautus: koska remote – taustajärjestelmää ei tuettu terraformin vanhemmassa versiossa, sinun on käytettävä 0.11.13: a tai uudempaa, jotta voit siirtää tilasi Terraform Cloudiin. Tämän opetusohjelman pätkät käyttävät 0.12-syntaksia.

jos sinulla ei ole Terraformia asennettuna paikallisesti, voit suorittaa tämän opetusohjelman interaktiivisessa laboratoriossa selaimellasi. Laukaiskaa se täältä.

”Luo tila

Aloita kloonaamalla tämä GitHub-arkisto.

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

Kopioi

seuraava, vaihda hakemistoon.

$ cd learn-state-migration

Kopioi

käy läpi main.tf – tiedosto työhakemistossa saadaksesi yleiskuvan resursseista, joita olet luomassa. Tämä kokoonpano käyttää random_pet – resurssia luodakseen ja tulostaakseen satunnaisen pet-nimen, jossa on tietty määrä sanoja. Nimen pituus määräytyy name_length – muuttujan arvon mukaan, jonka oletusarvo on 3.

reaalimaailman konfiguraatiossa voi olla lisämuuttujia, kuten pilvialustan tunnistetiedot, jotka on määritelty .tfvars-tiedostossa. Käsittelemme näiden arvojen asettamista Terraform Cloud-työtilassa myöhemmin tässä opetusohjelmassa, kun olet siirtänyt valtion tiedoston.

## 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}

Kopioi

alustaa Hakemisto.

$ terraform init

Kopioi

kun Terraform on alustettu, käytä määritys ja hyväksy ajo kirjoittamalla ”Kyllä” pikaviestiin.

$ terraform apply

kopio

Terraform tulostaa kolme sanaa satunnaisesti luotua pet-nimeä.

”Määritä etätaustajärjestelmä

nyt kun sinulla on paikallisen valtion tiedosto, sinun täytyy luoda asetuksiisi backend-koodilohko. Taustajärjestelmät kertovat Terraformille, minne sen tilatiedosto Ladataan ja tallennetaan.

Terraform käyttää oletusarvoisesti paikallista taustajärjestelmää, jos asetuksissasi ei ole nimenomaisesti määritelty backend-koodilohkoa. Paikallinen taustaosa tallentaa tilasi terraform.tfstate tiedostona hakemistoon, jossa suoritat terraform apply. Jos haluat siirtää tilatiedostoja Terraform-pilveen, määrittele remote – taustajärjestelmä asetuksissasi lisäämällä uusi koodilohko main.tf – tiedoston alkuun.

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" } }}

Kopioi

korvaa organisaatio ja työtilat-attribuutin arvot Terraform-Pilviorganisaatiosi nimellä ja halutulla työtilan nimellä. Vaikka backend-säkeistössä määritellyn organisaation on jo oltava olemassa, työtilan ei tarvitse; Terraform-pilvi luo sen tarvittaessa. Jos päätät käyttää jo olemassa olevaa työtilaa, työtilassa ei saa olla olemassa olevia tiloja.

Huomaa: Jos olet perehtynyt terraformin pyörittämiseen CLI: n avulla, olet saattanut käyttää Terraform-työtiloja. Terraform Cloud-työtilat käyttäytyvät eri tavalla kuin Terraform CLI-työtilat. Terraform CLI-työtilat mahdollistavat useiden tilatiedostojen olemassaolon yhdessä hakemistossa, jolloin voit käyttää yhtä määritystä useissa ympäristöissä. Terraform Cloud-työtilat sisältävät kaiken tarvittavan tietyn infrastruktuurin hallintaan ja toimimaan erillisten työhakemistojen tavoin.

”todentaa terraform Cloud

nyt kun olet määrittänyt taustaosan, sinun on todennuttava Terraform Cloudilla, jotta voit jatkaa alustusta. Voit todentaa terraform Cloudin avulla ajamalla terraform login – alakomitean ja seuraamalla sisäänkirjautumiskehotteita.

Huomaa: Jos käytät Terraformin versiota ennen 0.12.21, terraform login – komento ei ole käytettävissä. Sen sijaan, määritä CLI asetustiedosto todentaa.

$ 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:

Kopioi

vastaa vahvistuskehotteeseen yes.

tarkemmat ohjeet sisäänkirjautumiseen löytyvät kirjautumisoppaasta.

”siirrä tilatiedosto

kun olet todentanut remote backendin, olet valmis siirtämään paikallisen tilatiedoston Terraform-pilveen. Aloittakaa muutto uudelleen. Tämä aiheuttaa sen, että Terraform tunnistaa muuttuneet taustaosan asetukset.

$ 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:

Kopioi

uudelleenaloittamisen aikana Terraform esittää kehotuksen, jonka mukaan se kopioi valtion tiedoston uuteen taustajärjestelmään. Syötä yes ja Terraform siirtää tilan paikalliselta koneeltasi Terraform Cloudiin.

”Määritä Terraform Cloud-työtila

siirryttyäsi terraform Cloud-palveluun, Kirjaudu sisään Terraform Cloud-web-käyttöliittymään, etsi työtilan nimi sellaisena kuin se on määritelty backend-asetuksissa ja napsauta sitä. Siirry työtilan välilehteen ”valtiot” ja katso ensimmäinen toimintasi työtilassa.

näkymä Terraform-pilvipalvelun välilehdeltä

muista, että asetuksessasi on muuttuja, joka sinun on lisättävä uuteen työtilaan. Napsauta ”muuttujat” – välilehteä työtilassa ja sitten”lisää muuttuja”.Anna muuttujan nimi, name_length, avaimeksi. Kirjoita sitten uusi arvo, 5, ja tallenna muuttuja.

Terraform Cloud workspace ' s Variables-välilehti, johon on lisätty muuttuja

reaalimaailman kokoonpanoissa, lisää pilvialustan tunnistetiedot ja muut konfiguraatiomuuttujat myös työtilaan.

”Käynnistä ajo uudessa työtilassa

varmistettuasi, että tila on siirretty Terraform-Pilvityötilaan, Poista paikallinen tilatiedosto.

$ rm terraform.tfstate

Kopioi

käytä Uusi suoritus.

$ terraform apply

Kopioi

Terraform suoratoistaa lokit Terraform Cloudista ja tarjoaa linkin ajoon Terraform Cloud UI-käyttöliittymässä. name_length – muuttujalle asetetaan uusi arvo, joten resurssi korvataan uusia parametreja vastaavalla arvolla.

kuva suorituksesta odottamassa vahvistusta, lokissa lukee, että resurssi korvataan

”seuraavat vaiheet

tuhoa tälle opetusohjelmalle luomasi resurssit napsauttamalla ensin” Asetukset ”- vaihtoehtoa Terraform-Pilvityötilassa, valitsemalla” Destruction andDeletion”, varmistamalla, että” Salli tuhota suunnitelmat ”- valintaruutu on valittuna ja napsauttamalla sitten”jono tuhoa suunnitelma”.

kun resurssit on tuhottu, palaa ”Destruction andDeletion” – sivulle ja napsauta ”Delete from Terraform Cloud” poistaaksesi työtilan.

tässä opetusohjelmassa siirrit tilatiedoston paikallisesta koneestasi Terraform-Pilvityötilaan. Jos haluat oppia siirtämään useiden paikallisten työtilojen tilatiedostot tai rajoittamaan tietyn ryhmän työtilojen käyttöoikeuksia, katso seuraavat asiakirjat.

  • siirtyminen useista paikallisista työtiloista
  • työtilojen käytön hallinta

jos sinulla on suuri määrä tilatiedostoja, jotka haluat siirtää Terraform Cloudiin, harkitse Terraform Cloud API: n käyttöä. Lisätietoja sovellusliittymää käyttävien tilaversioiden lataamisesta löytyy Tilaversion API-dokumentaatiosta.

Related Post

Leave A Comment