1. Báza znalostí
  2. Cloud a servery
  3. Nástroje
  4. Terraform
  5. Terraform v prostredí VDC – automatizujeme vytváranie inštancií
  1. Báza znalostí
  2. Cloud a servery
  3. Terraform v prostredí VDC – automatizujeme vytváranie inštancií

Terraform v prostredí VDC – automatizujeme vytváranie inštancií

V prvej časti seriálu o nástroji Terraform v systéme OpenStack sme oba produkty predstavili. Zároveň sme uviedli dôvody, pre ktoré je vhodné použiť nástroj Terraform. Rovnako sme ukázali ako nainštalovať Terraform a ako si zo systému OpenStack stiahnuť informácie potrebné na pripojenie a použitie nástroja Terraform. V tejto časti vytvoríme inštancie v systéme OpenStack pomocou nástroja Terraform.

Namiesto toho, aby sme vo webovom prostredí VDC na adrese cloud.websupport.sk ručne vyklikávali nastavenia inštancií, necháme to automatizovať Terraform za presne stanovených podmienok. Podmienky pre Terraform, podľa ktorých bude postupne automaticky vytvárať virtuálne stroje s virtuálnymi diskami a sieťami, zapíšeme do súborov vo formáte stanovenom spoločnosťou HashiCorp.

Príprava prostredia VDC

Vo webovom rozhraní VDC najskôr musíme vytvoriť a skontrolovať toto:

  1. V časti Compute – Key Pairs vytvoríme nový pár kľúčov, pričom verejnú časť kľúča použijeme nižšie pri konfigurácii Terraformu (v hodnote premennej vdc_ssh_pub_key).
  2. Ubezpečíme sa, že máme k dispozícii verejnú IP adresu v časti Network – Floating IPs. Túto Terraform automaticky pridelí inštancii, ktorú vytvorí.

V rámci tohto návodu budeme pracovať so súbormi, ktoré sú verejne dostupné v Git repozitári na adrese github.com/tiborepcek/terraform a sú prispôsobené tak, aby čo najlepšie fungovali na VDC od WebSupportu. Po správnom vyplnení premenných v súbore terraform.tfvars stačí cez nástroj Terraform konfiguračné súbory už iba aplikovať. Poďme si celý proces postupne ozrejmiť.

V prvom rade vyššie spomínaný Git repozitár stiahneme/naklonujeme do v prvom diele vytvorenom priečinku:

cd ~/websupport_openstack

git clone https://github.com/tiborepcek/terraform.git

Povinné premenné

V repozitári sa nachádza viacero súborov, no pre nás je podstatný predovšetkým súbor terraform.tfvars, pretože obsahuje premenné, ktorých hodnoty <change_me> musíme nahradiť unikátnymi pre našu inštanciu VDC. Povinné premenné sú tieto štyri:

  1. openstack_user_name – prihlasovacie meno (user name), ktorým sa prihlasujeme do webového rozhrania VDC od WebSupportu na adrese cloud.websupport.sk/horizon/auth/login.
  2. openstack_tenant_name – rovnaké ako openstack_user_name
  3. openstack_password – prihlasovacie heslo (password), ktorým sa prihlasujeme do webového rozhrania VDC od WebSupportu na adrese cloud.websupport.sk/horizon/auth/login.
  4. vdc_ssh_pub_key – skopírujeme celý verejný kľúč (public key) podľa obrázku nižšie:

WebSupport VDC – verejný kľúč (public key)

Obrázok: https://tiborepcek.com/nc/index.php/s/jA6692QoZCciyrx 

Ostatné premenné

Hodnotu týchto premenných teoreticky netreba meniť, určite ju však skontrolujte pri každej jednej premennej, aby ste sa uistili, že zodpovedá vašim požiadavkám.

  1. vdc_image – názov obrazu (operačného systému), ktorý sa aplikuje na novovytvorený virtuálny stroj (Virtual Machine, čiže VM). Všetky dostupné sú uvedené na adrese cloud.websupport.sk/horizon/project/images. V tomto návode použijeme “Ubuntu 22.04 LTS” pre všetky virtuálne stroje.
  2. vdc_lb – počet virtuálnych strojov vytvorených pre server použitý ako Load Balancer (LB), pričom minimálny počet je 1 a maximálny 3.
  3. vdc_web – počet virtuálnych strojov vytvorených pre server použitý ako webový server, pričom minimálny počet je 1 a maximálny 3.
  4. vdc_db – počet virtuálnych strojov vytvorených pre server použitý ako databázový server, pričom minimálny počet je 1 a maximálny 3.
  5. vdc_flavor_lb – počet virtuálnych procesorov (číslo za písmenom c) a veľkosť pamäte RAM v GB (číslo za písmenom m), uistite sa teda, či máte dostatok voľných prostriedkov aj po vynásobení číslom z premennej vdc_lb.
  6. vdc_flavor_web – počet virtuálnych procesorov (číslo za písmenom c) a veľkosť pamäte RAM v GB (číslo za písmenom m), uistite sa teda, či máte dostatok voľných prostriedkov aj po vynásobení číslom z premennej vdc_web.
  7. vdc_flavor_db – počet virtuálnych procesorov (číslo za písmenom c) a veľkosť pamäte RAM v GB (číslo za písmenom m), uistite sa teda, či máte dostatok voľných prostriedkov aj po vynásobení číslom z premennej vdc_db.
  8. vdc_volume_lb – veľkosť virtuálneho disku v GB, čiže sa uistite, či máte dostatok voľného miesta z celkovo dostupného na adrese cloud.websupport.sk/horizon/project.
  9. vdc_volume_web – veľkosť virtuálneho disku v GB, čiže sa uistite, či máte dostatok voľného miesta z celkovo dostupného na adrese cloud.websupport.sk/horizon/project.
  10. vdc_volume_db – veľkosť virtuálneho disku v GB, čiže sa uistite, či máte dostatok voľného miesta z celkovo dostupného na adrese cloud.websupport.sk/horizon/project.

Vytvárame inštancie

Ak ste sa uistili, že máte dostatok virtuálnych procesorov pre všetky zamýšľané virtuálne stroje a tiež dostatok pamäte RAM a úložného priestoru, spustite v priečinku Git repozitára inicializačný príkaz nástroja Terraform:

cd ~/websupport_openstack/terraform

terraform init

Terraform inicializuje svoje prostredie a potrebné moduly (v našom prípade modul pre poskytovateľa Openstack). Teraz si necháme zobraziť, aké zmeny vlastne chceme na WebSupport VDC vykonať:

terraform plan

Okrem podrobného plánu Terraform vypíše aj zhrňujúce informácie o tom, čo sa nanovo vytvorí (add), čo sa zmení (change) a čo sa vymaže (destroy). Ak sme s plánom spokojní, môžeme ho nechať realizovať:

terrafrom apply

Terraform sa ešte naposledy opýta, či naozaj chceme navrhnutý plán realizovať. Napíšeme yes a o niekoľko desiatok sekúnd by sme mali mať vytvorené presne také virtuálne stroje, aké sme špecifikovali v premenných vyššie.

V prípade, že sa rozhodneme zrealizovaný plán zvrátiť (zničiť), stačí zadať tento príkaz a všetky virtuálne stroje spolu s virtuálnymi diskami sa vymažú:

terraform destroy

Zhrnutie

V druhej časti (poslednej) sme ukázali, ako rýchlo a jednoducho napíšeme plán, podľa ktorého nástroj Terraform vytvorí virtuálne stroje s požadovaným operačným systémom. Tiež sme definovali, koľko virtuálnych procesorov a pamäte RAM virtuálnym strojom bude pridelených. Rovnako sme nastavili veľkosť virtuálnych diskov, ktoré budú k virtuálnym strojom priradené. Získali sme tak efektívny nástroj, vďaka ktorému sa nasadzovanie virtuálnych počítačov stáva jednoduchým a rýchlym procesom.

Aktualizované 19. mája 2023

Bol pre vás tento návod nápomocný?

Mohlo by vás tiež zaujímať:

Spýtajte sa nás, radi poradíme
Po - Ne 8:00-22:00
Kontaktovať podporu