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.
- Nainštalujte si rozbaľovací balíček do systému a po stiahnutí rozbalte balíček terraform.
- 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.
- Extrahujte terraform do aktuálne aktívneho adresára. Predvolene je to domovský adresár v Ubuntu.
- 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.
- Pomocou nasledujúceho príkazu získate prístup k terraformu z príkazového riadku bez uvedenia jeho adresára.
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
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.
- Prejdite na nasledujúcu adresu URL.
https: // konzola.oblak.google.com
- Kliknite na tlačidlo „Moje projekty“ v ľavom hornom rohu konzoly.
- 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é.
- 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
- 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"
- 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
- 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"
- 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"
- 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 "
- 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
- 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 ")"
- Výsledný blok kódu by mal vyzerať takto
- 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"
- 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 "
- 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
- potom použite nasledujúci príkaz na vykonanie konfiguračného súboru. platiť terraform
- Teraz použite verejnú adresu IP v ľubovoľnom webovom prehliadači na prístup na webový server inštancie VM.
- 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.
- 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 "