Terraform

Ako používať Terraform s Google Cloud Platform?

Ako používať Terraform s Google Cloud Platform?
Terraform je nástroj používaný na ľahkú správu infraštruktúry ako kódov. Vyvinul ho HashiCorp ako projekt opensource pre vývojárov cloudu na správu svojej infraštruktúry vo veľmi vysokom jazyku (HCL). Najväčšou výhodou tohto nástroja je to, že abstrahuje od hlavných služieb infraštruktúry, ako sú AWS, OpenStack, Vultr, Digital Ocean, Google Cloud, a umožňuje vývojárom zjednotiť ich konfiguráciu v jednom štandardnom formáte. Okrem toho je s Terraformom možná aj automatizácia a podrobné vykonávanie. Je k dispozícii pre platformy Windows, Linux, MacOS a je možné ho použiť s akoukoľvek hlavnou cloudovou platformou so strednou úrovňou technických znalostí.

Táto príručka ukazuje, ako používať Terraform s platformou Google Cloud. Táto príručka predpokladá, že používateľ má účet na platforme Google Cloud a je pripravený na použitie, ak nie je možné vytvoriť si bezplatný skúšobný účet na jeden rok. Google Cloud však vyžaduje, aby ste pre prístup do svojej konzoly zadali platné číslo kreditnej karty; preto sa uistite, že je to vyriešené skôr, ako budete pokračovať.

Požiadavky a podmienky

Platforma Google Cloud pozostáva z veľkého množstva služieb; preto je ťažké zahrnúť ich všetky do jedného sprievodcu, a preto sa tento sprievodca týka iba sekcie inštancií Google VM. Ukazuje, ako nainštalovať webový server Nginx v inštancii VM Ubuntu v infraštruktúre Google Cloud.

Pretože sprievodca je o terraforme, je zrejmé, že musí byť nainštalovaný v systéme. Ďalej je potrebné vygenerovať kľúč SSH na prístup k inštancii VM.

Ako nainštalovať Terraform na Ubuntu

Terraform je možné inštalovať dvoma rôznymi spôsobmi. Prvý spôsob je manuálny, ktorý vyžaduje, aby si ho užívateľ stiahol a nainštaloval do systému, alternatívnym a najviac odporúčaným spôsobom je automatizovaný spôsob, ktorý stiahne a nainštaluje terraform do systému pomocou niekoľkých kódových riadkov. Vykonajte to podľa nasledujúcich príkazov.

  1. Nainštalujte si rozbaľovací balíček do systému a po stiahnutí rozbalte balíček terraform.
sudo apt-get nainštalovať unzip
  1. Stiahnite a nainštalujte si terraform z daného odkazu. Upozorňujeme, že v okamihu písania článku je najnovšia verzia terraformu 0.11.10. V budúcnosti môže byť verzia iná. Preto vždy venujte pozornosť ich oficiálnym webovým serverom, kde získate informácie o najnovšom balíku terraform.
vydania wget https: //.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.PSČ
  1. Extrahujte terraform do aktuálne aktívneho adresára. Predvolene je to domovský adresár v Ubuntu.
rozbaľte terraform_0.11.10_linux_amd64.PSČ
  1. Presuňte terraform do binárneho priečinka. Terraform nemá inštalačný súbor; jeho binárny súbor musí byť preto vložený do bin súboru ručne.
sudo mv terraform / usr / local / bin /
  1. Pomocou nasledujúceho príkazu získate prístup k terraformu z príkazového riadku bez uvedenia jeho adresára.
terraform --verzia

Ako vygenerovať vlastný kľúč SSH

Po inštalácii terraformu je ďalším dôležitým krokom vygenerovanie vášho vlastného páru verejných / súkromných kľúčov SSH na komunikáciu s inštanciou VM, ktorá sa má vytvoriť. Pár kľúčov SSH poskytuje silné zabezpečenie oproti tradičnému overovaniu pomocou hesla / používateľského mena; Preto je dôrazne odporúčané dodržiavať túto možnosť, aj keď to nie je povinné.

1. V prostredí Ubuntu zadajte nasledujúci príkaz na vygenerovanie páru kľúčov SSH.

ssh-keygen

2. Na začiatku sa opýta na názov páru kľúčov a potom na prístupovú frázu pre kľúč ssh. Verejný kľúč je vytvorený ako .pub, zatiaľ čo súkromný kľúč je vytvorený ako . Oba kľúče sú vytvorené v aktuálne aktívnom adresári. Uchovajte súkromný kľúč v bezpečí na bezpečnom mieste, pretože je dôležité získať prístup k inštancii VM.

Nakonfigurujte Google Cloud pomocou Terraformu

Po dokončení vyššie uvedených dvoch segmentov pokračujte vytvorením bezplatného skúšobného účtu v službe Google Cloud. Pretože vytvorenie účtu je jednoduchý proces, nie je to tu opísané. Po získaní prístupu ku konzole Google Cloud nakonfigurujte službu Google Cloud pomocou terraformu podľa nasledujúcich krokov.

  1. Prejdite na nasledujúcu adresu URL.
    https: // konzola.oblak.google.com
  1. Kliknite na tlačidlo „Moje projekty“ v ľavom hornom rohu konzoly.
  2. Vytvorte pre túto príručku buď nový projekt, alebo použite existujúci projekt. Účelom „projektu“ je zoskupenie rôznych služieb do služby Google Cloud. Projekt je najvyšším uzlom tejto hierarchie služieb a zvyšok služieb do nej smeruje. Služba vytvorená v rámci jedného projektu nie je prístupná z iného projektu. Po vytvorení projektu skopírujte a uschovajte jeho ID na bezpečnom mieste. Na nasledujúcej snímke obrazovky je ID projektu charizmatická-suma-202020, a vo vašej cloudovej konzole to môže byť iné. 
  3. Prejdite na nasledujúcu webovú adresu URL a stiahnite si súbor poverení vo formáte JSON na overenie totožnosti používateľa pri pripojení k cloudovej platforme Google. Toto je účet správcu; preto sa uistite, či je tento súbor poverení bezpečný na bezpečnom mieste. https: // konzola.oblak.google.com / apis / credentials / serviceaccountkey 
  4. Vytvorte súbor a premenujte ho na hlavný.tf. Tento súbor je konfiguračný súbor pre terraformu, potom použije ako prvý riadok kódu nasledujúci blok kódu. Názov poskytovateľa slúži na informovanie poskytovateľa, s ktorým sa chcete spojiť. Terraform podporuje veľké množstvo cloudových platforiem; preto musí byť názov cloudovej platformy výslovne uvedený. Je to Google, čo znamená, že sa spája s cloudovou platformou Google. Okrem nadpisu sú v bloku 3 atribúty, atribút „credentials“ slúži na zadanie názvu súboru poverenia stiahnutého vyššie, názov projektu je umiestnenie v cloude Google, kde je vytvorená inštancia VM. ID vytvorené v kroku 3 sa tu použije ako názov projektu. Región je geografické umiestnenie, kde je vytvorená inštancia VM. Existuje viac regiónov. Pomocou tohto odkazu sa dostanete do všetkých dostupných oblastí. https: // cloud.google.poskytovateľ com / appengine / docs / locations „google“
    credentials = "$ súbor (" CREDENTIALS_FILE.json ")"
    project = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Pomocou nasledujúceho príkazu nainštalujte doplnky pre terraform. Nasledujúci príkaz automaticky skenuje konfiguračný súbor terraformu a identifikuje, ktoré doplnky sa majú nainštalovať. Okrem toho tiež stiahne informácie o poskytovateľovi terraformu. Táto príručka používa platformu Google Cloud; teda sťahuje informácie o poskytovateľoch cloudových terraformov Google. Príkaz identifikuje poskytovateľa podľa názvu uvedeného v kľúčovom slove „provider“ v konfiguračnom súbore terraform. terraform init
  1. Nasledujúce dva bloky kódu použite na definovanie ďalších informácií pre inštanciu VM. Od začiatku používa doplnok random id na generovanie náhodného čísla s 8 číslicami, potom toto číslo priradí premennej instance_id na použitie ako predponu názvu pre inštanciu VM. V druhom bloku kódu vytvorí inštanciu VM s názvom „nucuta-vm-. Typ stroja je balík servera, ktorý sa používa na hosťovanie inštancie VM. Dostupné typy zariadení nájdete na tejto webovej adrese URL. https: // cloud.google.com / compute / docs / machine-types. Zóna je presná poloha regiónu. V každom regióne sú k dispozícii hlavne 3 zóny, a, b, c. Každá zóna má svoju vlastnú hardvérovú / softvérovú konfiguráciu. Pomocou tejto webovej adresy URL sa dozviete o všetkých dostupných zónach a ich hardvérovej konfigurácii. https: // cloud.google.com / compute / docs / regions-areas / resource "random_id" "instance_id"
    byte_length = 8

    zdroj "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zóna = "asia-juh1-a"
  1. V bloku kódu „google_compute_instance“ použite nasledujúci blok kódu. Určuje operačný systém, ktorý sa má použiť. Pomocou tejto webovej adresy URL nájdete všetky dostupné operačné systémy pre cloudovú platformu google. https: // cloud.google.com / compute / docs / images. Hovorí to obraz, pretože operačné systémy sú uložené ako „obrazové“ súbory. Pri vykonávaní konfiguračného súboru terraformu sa obrazový súbor extrahuje a jeho operačný systém sa nainštaluje do inštancie VM rovnako ako na bežnom počítači. Atribút obrázka je v tomto formáte, imidžový projekt / obrazová rodina. boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. V bloku kódu „google_compute_instance“ použite nasledujúci kód. Určuje štartovací skript, ktorý sa má spustiť na novovytvorenej inštancii VM. Tento skript sa vykoná hneď po vytvorení inštancie VM. V nasledujúcom príklade aktualizuje lokálne úložisko informácií o balíkoch najnovšími informáciami, potom aktualizuje všetky balíky pomocou dist-upgrade a potom nainštaluje balík nginx. Nezabudnite použiť príznak -y, aby bol proces neinteraktívny, čo znamená, že sa proces automaticky vykoná a vykoná bez toho, aby vyžadoval zásah používateľa. metadata_startup_script = "sudo apt-get -y aktualizácia;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y nainštalovať nginx "
  1. V bloku kódu „google_compute_instance“ použite nasledujúci blok kódu. Nasledujúci blok kódu určuje sieťové rozhranie, ktoré sa používa na pripojenie aktuálnej inštancie VM k iným inštanciám VM, zariadeniam a sieťam. Blok Access_config sa používa na pridelenie inštancie VM externej adresy IP na prístup k nej z Internetu. sieťové rozhranie
    network = "predvolené"
    access_config

  1. Na záver použite nasledujúci blok kódu v bloku kódu „google_compute_instance“. Určuje používateľské meno a verejný kľúč SSH. Uistite sa, že vygenerovaný verejný kľúč SSH je v rovnakom priečinku ako konfiguračný súbor terraformu. Používateľské meno by malo byť meno účtu, z ktorého bol kľúč SSH vytvorený, napríklad ak je názov účtu root, potom jeho používateľské meno je root. metadáta
    sshKeys = "dilanga: $ súbor (" dilanga.krčma ")"

  1. Výsledný blok kódu by mal vyzerať takto 
  2. Použite nasledujúci blok kódu vonku bloku kódu „google_compute_instance“. Inštancia VM predvolene blokuje všetku prichádzajúcu a odchádzajúcu komunikáciu. Pretože táto príručka vytvára webový server, musia byť otvorené porty 80 a 443, aby používateľom umožnili prístup k nim cez internet. Atribút name od začiatku pre toto pravidlo vytvára profil v bráne firewall spoločnosti Google, atribút siete určuje, na ktoré sieťové rozhranie sa pravidlo vzťahuje, allow blok umožňuje protokoly a pod nimi určené porty. Protokol Icmp sa používa na otestovanie príkazu ping na webový server, aby sa zabezpečilo, že je prístupný verejnosti. Mnoho služieb často používa ping na zistenie dostupnosti webovej stránky. zdroj "google_compute_firewall" "predvolené"
    name = "nginx-firewall"
    network = "predvolené"
     
    povoliť
    protokol = "tcp"
    porty = ["80", "443"]

     
    povoliť
    protokol = "icmp"

  3. Použite nasledujúci blok kódu vonku „google_compute_instance“, aby sa vytlačila verejná adresa IP aktuálnej inštancie VM. výstup "ip"
    value = "$ google_compute_instance.nucuta.sieťové rozhranie.0.access_config.0.nat_ip "
  4. Pomocou nasledujúceho príkazu overte konfiguračný súbor a súbor poverení. Tiež zobrazuje ukážky toho, ako vyzerá konečný výsledok po vykonaní konfiguračného súboru. terraformný plán
  5. potom použite nasledujúci príkaz na vykonanie konfiguračného súboru. platiť terraform
  6. Teraz použite verejnú adresu IP v ľubovoľnom webovom prehliadači na prístup na webový server inštancie VM.
  7. Pomocou nasledujúceho príkazu získate prístup k inštancii VM cez SSH na správu servera. Skontrolujte, či je súkromný kľúč v aktuálnom adresári, alebo zadajte cestu k súkromnému kľúču.
  8. ssh -i @

    Záver

    To by malo stačiť na začiatok.  Celý konfiguračný súbor, hlavný.tf, je uvedený nižšie. Zvýraznené texty je možné meniť podľa požiadaviek používateľa.

    poskytovateľ „google“
    credentials = "$ file (" dilannga_credentials.json ")"
    project = "charismatic-sum-202020"
    region = "asia-juh1"

     
    zdroj "random_id" "instance_id"
    byte_length = 8

     
    zdroj "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zóna = "asia-juh1-a"
     
    boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade;
    sudo apt-get -y nainštalovať nginx "
     
    sieťové rozhranie
    network = "predvolené"
     
    access_config
     


     
    metadáta
    sshKeys = "dilanga: $ súbor (" dilanga.krčma ")"


     
    zdroj "google_compute_firewall" "predvolené"
    name = "nginx-firewall"
    network = "predvolené"
     
    povoliť
    protokol = "tcp"
    porty = ["80", "443"]

     
    povoliť
    protokol = "icmp"


     
    výstup "ip"
    value = "$ google_compute_instance.nucuta.sieťové rozhranie.0.access_config.0.nat_ip "
Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...
Hry HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
Mnoho vývojárov a vydavateľov hier prichádza s remastrom starých hier v rozlíšení HD, aby predĺžili životnosť franšízy. Prosím fanúšikov, ktorí požadu...