Konfigurace Terraformu a skriptování
V této lekci se podíváme na konfiguraci a skriptování Terraformu.
Proč Terraform?
Jako správce infrastruktury potřebujete nástroj pro zřizování a správu infrastruktury Azure. Chcete také použít infrastrukturu jako kód v konfiguračních souborech, které popisují topologii vašich prostředků Azure.
HashiCorp Terraform je skvělý při nasazování infrastruktury napříč poskytovateli cloudu. Poskytuje vývojářům konzistentní nástroje pro správu jednotlivých definic infrastruktury.
Automatizace správy infrastruktury
Pomocí konfiguračních souborů Terraformu založených na šablonách můžete definovat, zřizovat a konfigurovat prostředky Azure opakovatelným a předvídatelným způsobem. Tato automatizace nabízí několik výhod:
- Snižuje potenciál lidské chyby při nasazování a správě infrastruktury.
- Nasadí stejnou šablonu několikrát, aby vytvořila identická vývojová, testovací a produkční prostředí.
- Snižuje náklady na vývojová a testovací prostředí tím, že je vytváří na vyžádání.
Vysvětlení změn infrastruktury před jejich aplikováním
Vzhledem k tomu, že topologie prostředků je stále složitější, může být obtížné pochopit význam a vliv změn infrastruktury.
Pomocí Terraformu můžete před použitím ověřit a zobrazit náhled změn infrastruktury. Členové týmu můžou efektivněji spolupracovat tím, že pochopí navrhované změny a jejich účinek v rané fázi procesu vývoje.
Konfigurační soubory Terraformu
Konfigurační soubory generují plán provádění a to, co plán udělá pro dosažení požadovaného stavu. Terraform pak může sestavit popsanou infrastrukturu. Při změnách konfigurace může Terraform určit, co se změnilo, a vytvořit plány přírůstkového provádění.
Konfigurační soubory Terraformu používají vlastní konfigurační jazyk podobný YAML, který je navržený tak, aby umožňoval popis infrastruktury.
Konfigurační soubory vytvoříte pomocí syntaxe HCL (HashiCorp Configuration Language). HCL je deklarativní a popisuje zamýšlený cíl, nikoli kroky k dosažení tohoto cíle. Syntaxe HCL umožňuje určit poskytovatele cloudu, jako je Azure, a prvky, které tvoří vaši cloudovou infrastrukturu.
Konfigurační soubory se ukládají jako soubory ve formátu prostého textu s příponou .tf . Mezi ně patří:
- main.tf: (povinné) Definuje hlavní strukturu, nasazení kompletní infrastruktury přímo nebo prostřednictvím volání modulů.
- outputs.tf: Identifikuje každou návratovou hodnotu modulu Terraform.
- variables.tf: Definuje proměnné v main.tf bez ohledu na to, jestli jsou povinné nebo ne.
Moduly
Prostředky Terraformu můžete seskupit do modulu, který vytvoří větší jednotku konfigurace. Tyto moduly jsou sady konfiguračních souborů, které jsou uložené v jednom adresáři. Jednoduchá konfigurace se skládá z jednoho adresáře s jedním nebo více soubory .tf .
Moduly nabízejí mnoho výhod. Například moduly:
- Pomozte uspořádat projekt.
- Zapouzdření složitosti.
- Umožňuje opakovaně používat běžné úlohy.
- Zajistěte konzistenci a ujistěte se, že používáte osvědčené postupy.
Soubor main.tf
Soubor main.tf obsahuje hlavní sadu podrobností konfigurace pro váš modul. Tento soubor se často nazývá plán Terraformu. Váš plán Terraformu určuje prostředky infrastruktury, které potřebujete. Tento soubor můžete pojmenovat podle potřeby, ale obvykle se jmenuje main.tf.
Pracovní postup Terraformu
Terraform doporučuje pro automatizaci základní pracovní postup inicializace, plánování a použití. Tento pracovní postup spouští všechny akce CI/CD Terraformu na nových a aktualizovaných žádostech o přijetí změn Gitu.
Základní akce pro tento pracovní postup jsou:
- Init: Inicializace pracovního adresáře pomocí konfiguračních souborů Terraformu
- Plán: Vytvoření plánu pro změnu prostředků tak, aby odpovídaly aktuální konfiguraci
- Použít: Použijte změny popsané v plánu.
State
Stav umožňuje Terraformu zjistit, jaké prostředky Azure se mají přidat, aktualizovat nebo odstranit.
Terraform používá stav k vytváření plánů a provádění změn infrastruktury. Před jakoukoli operací Terraform aktualizuje stav skutečnou infrastrukturou.
Stav je ve výchozím nastavení uložený v místním textovém souboru s názvem terraform.tfstate. Terraform spravuje tento soubor pomocí akcí pracovního postupu, které definujete v modulech.
Stav můžete uložit také vzdáleně, a to je přístup, který funguje lépe v týmovém prostředí. Další informace o vzdálené správě stavu najdete v souhrnné lekci na konci tohoto modulu.
Další kroky
V další lekci probereme použití Terraformu s GitHub Actions nebo Azure Pipelines ke zřízení a nasazení vašich aplikací.