Terraform State Management

Terraform State Management



Infrastruktuur kui kood on IT-infrastruktuuri haldamise ja varustamise protseduur koodi kaudu, mis aitab ületada suuremahulise varustamise ja IT-ressursside käsitsi ja korduva haldamise keerukust. HashiCorpi Terraform on avatud lähtekoodiga IaC tööriist, mis kasutab olekuhaldussüsteemi muudatuste jälgimiseks ja olekufailide haldamiseks. Selle riigijuhtimissüsteem on üks selle põhifunktsioone ja aitab tõhusalt jälgida infrastruktuuri muutusi. See artikkel räägib sellest, kuidas Terraformi olekujuhtimine töötab ja kuidas seda tõhusalt kasutada.

Terraform riik

Meie infrastruktuuri praegune olek, mis sisaldab teavet koodis määratletud ressursside kohta, salvestatakse Terraformi olekuna. Terraform kasutab seda olekut, et määrata kindlaks muudatused, mis on vajalikud meie infrastruktuuri viimiseks soovitud olekusse, kui käivitatakse selline käsk nagu Terraform 'apply'. Pärast muudatuste tegemist (loomine, muutmine ja kustutamine) värskendab Terraform olekufaili teie infrastruktuuri uue olekuga.

Kontseptsiooni selgeks mõistmiseks võtame näite:







ressurss 'kohalik_fail' 'John' {

failinimi = '/home/John.txt'

sisu = 'Ma armastan lemmikloomi'

}

Siin loome Terraformi faili nimega 'main.tf'. Selle sees on local_file tüüpi ressurss nimega 'John', millel on kaks atribuuti: failinimi ja sisu.



Ressursitüüpi local_file kasutatakse faili loomiseks selle masina kohalikku failisüsteemi, kus Terraform töötab. Sel juhul luuakse fail nimega “John.txt” kataloogis “/home” ja faili sisuks on “Ma armastan lemmikloomi”.



Nüüd teostame Terraformi voo – Terraformi käivitamine, planeerimine ja rakendamine. Kui käivitame oma projektis esimest korda Terraformi käsu 'apply', loob Terraform meie Terraformi projekti juurkataloogis automaatselt olekufaili 'terraform.tfstate'. See sisaldab kogu teavet meie infrastruktuuri praeguse oleku kohta JSON-vormingus.





Siin on meie loodud ressursi olekufail:



Oletame nüüd, et tahame praeguse ressursi eemaldada ja luua teise random_pet tüüpi ressursi nimega 'minu lemmikloom' atribuutidega – eesliide, pikkus ja eraldaja.

ressurss 'juhuslik_lemmikloom' 'minu lemmikloom' {

eesliide = 'Härra'

pikkus = '1'

eraldaja = '.'

}

Siin eemaldame ressursi local_file ja lisame ressursi random_pet. Meie soovitud olek on ainult random_pet ressurss. Teostame Terraformi initi, planeerime ja rakendame käske.

Nagu on näidatud eelmisel joonisel, näitab Terraformi käsku 'planeerimine' käivitades toiminguid, mida Terraform soovitud olekusse jõudmiseks teeb. Kui käivitame Terraformi käsu 'apply', luuakse ressurss 'minu lemmikloom' ja ressurss 'John' eemaldatakse. Samuti värskendatakse olekufaili, hävitades ressursi local_file metaandmed ja lisades ressursi random_pet metaandmed.

Siin on värskendatud olekufaili sisu:

Kuidas Terraform osariiki haldab?

Taustaprogrammi abil haldab Terraform riiki. Taustaprogramm on kaugteenus või kohalik failisüsteem, mida Terraform kasutab olekuandmete salvestamiseks ja toomiseks. Vastavalt meie nõudmistele saame valida sobiva taustaprogrammi.

Terraform toetab mitmeid sisseehitatud taustaprogramme, sealhulgas kohalikke, Amazon S3, HashiCorp Consul, Vault ja Azure Storage. Saame luua ka kohandatud taustaprogrammi, kui ükski sisseehitatud valikutest ei vasta vajadustele.

Eelmistes näidetes salvestati olekufailid kohalikku taustaprogrammi. Kuid selle salvestamine kaugtaustaprogrammi on parim tava, kuna see kutsub esile koostöö ja suurendab turvalisust.

Riigijuhtimise tähtsus

Olukorra haldamine sellistes tööriistades nagu Terraform on oluline järgmiste põhipunktide tõttu.

Määrake oma infrastruktuuri praegune seis

Olekufail annab täpse ülevaate olemasolevatest ressurssidest ja nende praegustest atribuutidest. Need andmed on meie infrastruktuuri mõistmiseks ja selle soovitud oleku tagamiseks hädavajalikud.

Jälgige aja jooksul infrastruktuuri muutusi

Iga kord, kui rakendame muudatusi Terraformi abil, värskendatakse olekufaili, et kajastada meie infrastruktuuri uut olekut. See võimaldab meil jälgida, kuidas meie infrastruktuur on arenenud, ja annab kõigi muudatuste auditijälje.

Automatiseerimine

Soovitud infrastruktuuri oleku koodis määratlemine võimaldab meil automatiseerida oma infrastruktuuri loomist ja haldamist. Riigi juhtimine tagab, et meie infrastruktuur jääb ihaldusväärseks ka siis, kui muudatusi aja jooksul tehakse.

Hallake sõltuvusi

Terraformiga saame määratleda oma konfiguratsioonifaili ressursside vahelisi seoseid ja Terraform kasutab olekufaili, et tagada nende seoste säilimine. See tagab, et ühe ressursi muudatused ei mõjuta kogemata teisi ressursse.

Katastroofiabi

Kui ilmneb rike või katkestus, saame kasutada olekufaili infrastruktuuri teadaolevas olekus uuesti loomiseks. See võib aidata minimeerida seisakuid ja tagada meie infrastruktuuri kiire ja tõhusa taastamise.

Tõhusa riigihalduse parimad tavad

Siin on mõned näpunäited, mida saame olekute tõhusaks haldamiseks järgida:

Kasutage kaugtaustaprogrammi

Kaugtaustaprogramm pakub mitmeid eeliseid võrreldes kohaliku taustaprogrammiga. See võimaldab mitmel kasutajal töötada sama infrastruktuuriga ning pakuvad ka paremat turvalisust ja töökindlust kui kohalikud taustaprogrammid.

Luba versioonimine

Olekufaili versioonides saame jälgida aja jooksul tehtud muudatusi ja vajadusel naasta eelmisele versioonile. Samuti pakub versioonimine kontrolljälge ja aitab tagada, et muudatused on nõuetekohaselt dokumenteeritud.

Kasutage lukustusmehhanismi

Saame kasutada lukustusmehhanismi, mis aitab vältida konflikte, kui mitu kasutajat töötab samas infrastruktuuris. Terraform toetab mitmeid lukustustööriistu, sealhulgas DynamoDB, Consul ja S3.

Varundage oma osariigi fail

Saame andmete riknemisest taastuda, kui varundame olekufaili regulaarselt. Peame varukoopiaid hoidma turvalises kohas ja järgima kõiki asjakohaseid vastavusnõudeid.

Järeldus

Meil oli IaC ja Terraform lühitutvustus, mõistsime olekufaile ja haldasime neid näidete kaudu. Terraformi riigi toimimise mõistmine aitab meil vältida tavalisi lõkse ja tagada, et meie infrastruktuur jääb ihaldusväärseks. Järgides olekute haldamise parimaid tavasid, saame Terraformi kasutada enesekindlalt ja tõhusalt.