Riadenie štátu Terraform

Riadenie Statu Terraform



Infrastructure as Code je postup riadenia a poskytovania IT infraštruktúry prostredníctvom kódu, ktorý pomáha prekonať zložitosť rozsiahleho poskytovania a správy IT zdrojov manuálne a opakovane. Terraform od HashiCorp je open-source nástroj IaC, ktorý využíva systém správy stavu na sledovanie zmien a správu súborov stavu. Jeho systém riadenia stavu je jednou z jeho kľúčových funkcií a pomáha efektívne sledovať zmeny infraštruktúry. Tento článok sa ponorí do toho, ako funguje správa stavu Terraform a ako ju efektívne používať.

Teraformný štát

Aktuálny stav našej infraštruktúry, ktorý zahŕňa informácie o zdrojoch, ktoré definujeme v našom kóde, sa zaznamenáva ako stav Terraform. Terraform používa tento stav na určenie zmien, ktoré sú potrebné na uvedenie našej infraštruktúry do požadovaného stavu, keď sa vykoná príkaz ako Terraform „apply“. Po vykonaní zmien (vytvoriť, upraviť a odstrániť) Terraform aktualizuje stavový súbor o nový stav vašej infraštruktúry.

Aby sme koncept jasne pochopili, vezmime si príklad:







zdroj 'miestny_súbor' 'John' {

názov súboru = '/home/John.txt'

obsah = 'Milujem domáce zvieratá'

}

Tu vytvoríme súbor Terraform s názvom „main.tf“. Vo vnútri je zdroj typu local_file s názvom „John“ s dvoma atribútmi: názov súboru a obsah.



Typ prostriedku local_file sa používa na vytvorenie súboru v lokálnom súborovom systéme počítača, na ktorom je spustený Terraform. V tomto prípade je súbor vytvorený s názvom “John.txt” v adresári “/home” a obsah súboru je “I love pets”.



Teraz vykonajte postup Terraform – Terraform iniciujte, plánujte a aplikujte. Keď prvýkrát spustíme príkaz Terraform „apply“ v našom projekte, Terraform automaticky vytvorí súbor stavu s názvom „terraform.tfstate“ v koreňovom adresári nášho projektu Terraform. Obsahuje všetky informácie o aktuálnom stave našej infraštruktúry vo formáte JSON.





Tu je súbor stavu pre zdroj, ktorý sme vytvorili:



Teraz povedzme, že chceme odstrániť aktuálny zdroj a vytvoriť ďalší zdroj typu random_pet s názvom „my-pet“ s atribútmi – predpona, dĺžka a oddeľovač.

zdroj 'random_pet' 'moje domáce zvieratko' {

predpona = 'Pán'

dĺžka = '1'

oddeľovač = '.'

}

Tu odstránime zdroj local_file a pridáme zdroj random_pet. Naším požadovaným stavom je mať iba zdroj random_pet. Poďme vykonať príkazy Terraform init, plánovať a aplikovať.

Ako je znázornené na predchádzajúcom obrázku, keď vykonáme príkaz Terraform „plán“, ukazuje akcie, ktoré Terraform vykonáva, aby sa dostal do požadovaného stavu. Keď spustíme príkaz Terraform „apply“, vytvorí sa zdroj „my-pet“ a zdroj „John“ sa odstráni. Stavový súbor sa tiež aktualizuje zničením metadát zdroja local_file a pridaním metadát zdroja random_pet.

Tu je obsah aktualizovaného súboru stavu:

Ako funguje Terraform the Manage State?

Pomocou backendu Terraform spravuje stav. Backend je vzdialená služba alebo lokálny súborový systém, ktorý Terraform používa na ukladanie a získavanie údajov o stave. Podľa našich požiadaviek vieme vybrať vhodný backend.

Terraform podporuje niekoľko vstavaných backendov vrátane miestnych, Amazon S3, HashiCorp Consul, Vault a Azure Storage. Môžeme tiež vytvoriť vlastný backend, ak žiadna zo vstavaných možností nevyhovuje potrebám.

V predchádzajúcich príkladoch boli stavové súbory uložené v lokálnom backende. Ale uloženie na vzdialenom backende je najlepším postupom, pretože vyvoláva spoluprácu a zvyšuje bezpečnosť.

Význam riadenia štátu

Riadenie stavu v nástrojoch ako Terraform je nevyhnutné kvôli nasledujúcim kľúčovým bodom:

Zistite aktuálny stav vašej infraštruktúry

Stavový súbor poskytuje presnú snímku existujúcich zdrojov a ich aktuálnych atribútov. Tieto údaje sú nevyhnutné na pochopenie našej infraštruktúry a zabezpečenie jej požadovaného stavu.

Sledujte zmeny v infraštruktúre v priebehu času

Zakaždým, keď použijeme zmeny pomocou Terraformu, stavový súbor sa aktualizuje, aby odrážal nový stav našej infraštruktúry. To nám umožňuje sledovať, ako sa naša infraštruktúra vyvíjala, a poskytuje auditnú stopu všetkých zmien.

automatizácia

Definovanie požadovaného stavu infraštruktúry v kóde nám umožňuje automatizovať vytváranie a správu našej infraštruktúry. Vedenie štátu garantuje, že naša infraštruktúra zostane žiadaná, aj keď sa zmeny uskutočnia v priebehu času.

Spravovať závislosti

S Terraformom môžeme definovať vzťahy medzi zdrojmi v našom konfiguračnom súbore a Terraform používa stavový súbor, aby zabezpečil, že tieto vzťahy budú zachované. To zaisťuje, že zmeny jedného zdroja neúmyselne neovplyvnia iné zdroje.

Zotavenie po havárii

Ak dôjde k poruche alebo výpadku, môžeme použiť stavový súbor na opätovné vytvorenie infraštruktúry v známom stave. To môže pomôcť minimalizovať prestoje a zabezpečiť rýchlu a efektívnu obnovu našej infraštruktúry.

Najlepšie postupy pre efektívne riadenie štátu

Tu je niekoľko tipov, ktorými sa môžeme riadiť, aby sme stavy efektívne spravovali:

Použite vzdialený backend

Vzdialený backend poskytuje niekoľko výhod oproti lokálnemu backendu. Umožňuje viacerým používateľom pracovať na rovnakej infraštruktúre a tiež ponúkajú lepšiu bezpečnosť a spoľahlivosť ako lokálne backendy.

Povoliť vytváranie verzií

Verziami súboru stavu môžeme sledovať zmeny v priebehu času a v prípade potreby sa vrátiť k predchádzajúcej verzii. Verzia tiež poskytuje kontrolný záznam a pomáha zabezpečiť, aby boli zmeny náležite zdokumentované.

Použite uzamykací mechanizmus

Môžeme použiť uzamykací mechanizmus, ktorý pomáha predchádzať konfliktom, keď viacerí používatelia pracujú na rovnakej infraštruktúre. Terraform podporuje niekoľko uzamykacích nástrojov vrátane DynamoDB, Consul a S3.

Zálohujte svoj štátny súbor

Môžeme sa zotaviť z poškodenia údajov, ak pravidelne zálohujeme štátny súbor. Zálohy musíme uchovávať na bezpečnom mieste a dodržiavať všetky príslušné požiadavky na dodržiavanie predpisov.

Záver

Mali sme krátky úvod do IaC a Terraform, pričom sme pochopili stavové súbory a spravovali ich prostredníctvom príkladov. Pochopenie toho, ako Terraform funguje, nám môže pomôcť vyhnúť sa bežným nástrahám a zabezpečiť, aby naša infraštruktúra zostala žiadaná. Dodržiavaním osvedčených postupov pre správu štátov môžeme Terraform používať s istotou a efektívne.