Terraform

Jak používat Terraform s Google Cloud Platform?

Jak používat Terraform s Google Cloud Platform?
Terraform je nástroj používaný pro snadnou správu infrastruktury jako kódů. Je vyvinut společností HashiCorp jako projekt opensource pro vývojáře cloudu pro správu jejich infrastruktury ve velmi vysokém jazyce (HCL). Největší výhodou tohoto nástroje je, že vybírá hlavní infrastrukturní služby, jako jsou AWS, OpenStack, Vultr, Digital Ocean, Google Cloud a umožňuje vývojářům sjednotit jejich konfiguraci v jediném standardním formátu. Navíc je u Terraformu možná automatizace a podrobné provedení. Je k dispozici na platformách Windows, Linux, MacOS a lze jej použít s jakoukoli hlavní cloudovou platformou se střední úrovní technických znalostí.

Tato příručka ukazuje, jak používat Terraform s platformou Google Cloud. Tato příručka předpokládá, že uživatel má účet na platformě Google Cloud a je připraven k použití, pokud není možné vytvořit si bezplatný zkušební účet na rok. Google Cloud však pro přístup ke své konzoli vyžaduje zadání platného čísla kreditní karty; proto se ujistěte, že je to vyřešeno, než budete pokračovat.

Požadavky a podmínky

Platforma Google Cloud se skládá z velkého počtu služeb; proto je obtížné je všechny pokrýt v jediném průvodci, a proto tento průvodce pokrývá pouze sekci instancí virtuálních počítačů Google. Ukazuje, jak nainstalovat webový server Nginx v instanci virtuálního počítače Ubuntu v infrastruktuře Google Cloud.

Vzhledem k tomu, že průvodce je o terraformu, je zřejmé, že musí být nainstalován v systému. Kromě toho je nutné vygenerovat klíč SSH pro přístup k instanci virtuálního počítače.

Jak nainstalovat Terraform na Ubuntu

Terraform lze nainstalovat dvěma různými způsoby. První metoda je ruční, což vyžaduje, aby si ji uživatel stáhl a nainstaloval do systému, alternativní a nejvíce doporučený způsob je automatizovaný způsob, který stáhne a nainstaluje terraform do systému pomocí několika kódových řádků. Postupujte podle následujících příkazů.

  1. Nainstalujte si do systému rozbalený balíček a po stažení balíček terraformu rozbalte.
sudo apt-get install unzip
  1. Stáhněte a nainstalujte terraform z daného odkazu. Všimněte si, že v okamžiku psaní článku je nejnovější verze terraformu 0.11.10. V budoucnu může být verze jiná. Vždy proto věnujte pozornost jejich oficiálním webovým stránkám, kde získáte informace o nejnovějším balíčku terraform.
wget https: // vydání.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.zip
  1. Extrahujte terraform do aktuálně aktivního adresáře. Ve výchozím nastavení je to domovský adresář v Ubuntu.
rozbalte terraform_0.11.10_linux_amd64.zip
  1. Přesuňte terraform do binární složky. Terraform nemá instalační soubor; proto musí být jeho binární soubor umístěn do souboru bin ručně.
sudo mv terraform / usr / local / bin /
  1. Použijte následující příkaz pro přístup k terraformu z příkazového řádku bez zadání jeho adresáře.
terraform - verze

Jak vygenerovat vlastní klíč SSH

Po instalaci terraformu je dalším důležitým krokem generování vlastního páru veřejného / soukromého klíče SSH pro komunikaci s instancí virtuálního počítače, která se má vytvořit. Pár klíčů SSH poskytuje silné zabezpečení oproti tradičnímu ověřování pomocí hesla / uživatelského jména; proto je důrazně doporučeno sledovat tuto možnost, i když to není povinné.

1. V prostředí Ubuntu zadejte následující příkaz pro vygenerování páru klíčů SSH.

ssh-keygen

2. Na začátku se zeptá na název páru klíčů a poté na přístupovou frázi pro klíč ssh. Veřejný klíč je vytvořen jako .pub, zatímco soukromý klíč je vytvořen jako . Oba klíče jsou vytvořeny v aktuálně aktivním adresáři. Uchovávejte soukromý klíč v bezpečí na zabezpečeném místě, protože je důležité získat přístup k instanci virtuálního počítače.

Nakonfigurujte Google Cloud pomocí Terraformu

Jakmile budou splněny výše uvedené dva segmenty, vytvořte si bezplatný zkušební účet ve službě Google Cloud. Protože vytvoření účtu je jednoduchý proces, není zde popsán. Po získání přístupu ke konzole Google Cloud nakonfigurujte Google Cloud pomocí terraformu podle následujících kroků.

  1. Přejděte na následující adresu URL.
    https: // konzole.mrak.Google.com
  1. Klikněte na tlačítko „Moje projekty“ v levém horním rohu konzoly.
  2. Vytvořte pro tuto příručku buď nový projekt, nebo použijte stávající projekt. Účelem „projektu“ je seskupení různých služeb do Google Cloud. Projekt je nejvyšším uzlem této hierarchie služeb a zbývající služby jdou pod ním. Služba vytvořená v rámci jednoho projektu není přístupná z jiného projektu. Jakmile byl projekt vytvořen, zkopírujte a uchovávejte jeho ID někde v bezpečí. Na následujícím snímku obrazovky je ID projektu charismatická-suma-202020, a ve vaší cloudové konzoli to může být jiné. 
  3. Přejděte na následující webovou adresu URL a stáhněte soubor pověření ve formátu JSON k ověření uživatele při připojování k cloudové platformě Google. Toto je účet správce; proto se ujistěte, že je tento soubor pověření bezpečný na bezpečném místě. https: // konzole.mrak.Google.com / apis / credentials / serviceaccountkey 
  4. Vytvořte soubor a přejmenujte jej jako hlavní.tf. Tento soubor je konfiguračním souborem pro terraform, poté jako první řádky kódu použijte následující blok kódu. Název poskytovatele slouží k uvedení poskytovatele, ke kterému se má připojit. Terraform podporuje velké množství cloudových platforem; proto musí být název cloudové platformy výslovně uveden. Tady je Google, což znamená, že se připojuje k cloudové platformě Google. Kromě nadpisu jsou v bloku 3 atributy, atribut „credentials“ slouží k určení výše staženého názvu souboru pověření, název projektu je umístění v cloudu Google, kde je vytvořena instance VM. ID vytvořené v kroku 3 se zde použije jako název projektu. Region je geografické umístění, kde je vytvořena instance virtuálního počítače. Existuje několik regionů. Pomocí tohoto odkazu můžete odkázat na všechny dostupné regiony. https: // cloud.Google.poskytovatel com / appengine / docs / locations „google“
    credentials = "$ file (" CREDENTIALS_FILE.json ")"
    project = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Pomocí následujícího příkazu nainstalujete doplňky pro terraform. Následující příkaz automaticky prohledá konfigurační soubor terraformu a určí, které doplňky se mají nainstalovat, navíc také stáhne informace o poskytovateli pro terraform. Tato příručka používá platformu Google Cloud; proto stahuje informace o poskytovateli cloudových terraform Google. Příkaz identifikuje poskytovatele podle názvu uvedeného v klíčovém slově „provider“ v konfiguračním souboru terraformu. terraform init
  1. Následující dva bloky kódu použijte k definování dalších informací pro instanci virtuálního počítače. Od začátku používá modul náhodného ID ke generování náhodného čísla s 8 číslicemi, poté toto číslo přiřadí proměnné instance_id pro použití jako předponu pro název instance VM. Ve druhém bloku kódu vytvoří instanci virtuálního počítače s názvem „nucuta-vm-. Typ počítače je balíček serveru, který se používá k hostování instance virtuálního počítače. Dostupné typy strojů najdete na této webové adrese URL. https: // cloud.Google.com / compute / docs / machine-types. Zóna je přesné umístění regionu. V každé oblasti jsou k dispozici hlavně 3 zóny, a, b, c. Každá zóna má vlastní hardwarovou / softwarovou konfiguraci. Pomocí této webové adresy URL můžete odkazovat na všechny dostupné zóny a jejich hardwarovou konfiguraci. https: // cloud.Google.com / výpočet / dokumenty / regiony-zóny / zdroj "random_id" "id_instance"
    byte_length = 8

    zdroj "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zone = "asia-south1-a"
  1. V bloku kódu „google_compute_instance“ použijte následující blok kódu. Určuje operační systém, který se má použít. Pomocí této webové adresy URL najdete všechny dostupné operační systémy pro cloudovou platformu google. https: // cloud.Google.com / compute / docs / images. Říká to obraz, protože operační systémy jsou uloženy jako „obrazové“ soubory. Při provádění konfiguračního souboru terraformu se obrazový soubor extrahuje a jeho operační systém se nainstaluje do instance virtuálního počítače stejně jako na běžném počítači. Atribut obrázku je v tomto formátu, image image / image family. boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. V bloku kódu „google_compute_instance“ použijte následující kód. Určuje spouštěcí skript, který se má spustit na nově vytvořené instanci virtuálního počítače. Tento skript se provede, jakmile byla vytvořena instance virtuálního počítače. V následujícím příkladu aktualizuje místní úložiště informací o balíku nejnovějšími informacemi, poté aktualizuje všechny balíčky pomocí dist-upgrade a poté nainstaluje balíček nginx. Nezapomeňte použít příznak -y, aby byl proces neinteraktivní, což znamená, že se automaticky provede a provede proces bez nutnosti zásahu uživatele. metadata_startup_script = "sudo apt-get -y aktualizace;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y nainstalovat nginx "
  1. V bloku kódu „google_compute_instance“ použijte následující blok kódu. Následující blok kódu určuje síťové rozhraní, které se používá k připojení aktuální instance virtuálního počítače s jinými instancemi virtuálních počítačů, zařízeními a sítěmi. Blok Access_config se používá k přidělení instance virtuálního počítače externí IP adresu pro přístup k ní z Internetu. síťové rozhraní
    network = "výchozí"
    access_config

  1. Nakonec použijte následující blok kódu v bloku kódu „google_compute_instance“. Určuje uživatelské jméno a veřejný klíč SSH. Ujistěte se, že vygenerovaný veřejný klíč SSH je ve stejné složce jako konfigurační soubor terraformu. Uživatelské jméno by mělo být jméno účtu, ze kterého byl vytvořen klíč SSH, například pokud je název účtu root, pak jeho uživatelské jméno je root. metadata
    sshKeys = "dilanga: $ file (" dilanga.hospoda")"

  1. Konečný blok kódu by měl vypadat takto 
  2. Použijte následující blok kódu mimo bloku kódu „google_compute_instance“. Ve výchozím nastavení instance VM blokuje veškerý příchozí a odchozí provoz. Protože tato příručka vytváří webový server, je třeba otevřít porty 80 a 443, aby k nim uživatelé mohli přistupovat přes internet. Atribut name od začátku vytváří pro toto pravidlo profil ve firewallu google compute, atribut network určuje, na které síťové rozhraní se pravidlo vztahuje, allow block umožňuje protokoly a pod nimi specifikované porty. Protokol Icmp se používá k ping na webový server, aby se zajistilo, že je přístupný veřejnosti. Ping je často využíván mnoha službami k zjišťování dostupnosti webových stránek. zdroj "google_compute_firewall" "výchozí"
    name = "nginx-firewall"
    network = "výchozí"
     
    dovolit
    protocol = "tcp"
    porty = ["80", "443"]

     
    dovolit
    protocol = "icmp"

  3. Použijte následující blok kódu mimo „google_compute_instance“ pro tisk veřejné IP adresy aktuální instance virtuálního počítače. výstup "ip"
    value = "$ google_compute_instance.nucuta.síťové rozhraní.0.access_config.0.nat_ip "
  4. Pomocí následujícího příkazu ověřte konfigurační soubor a soubor pověření. Také ukazuje, jak vypadá konečný výsledek po spuštění konfiguračního souboru. terraformní plán
  5. pak použijte následující příkaz ke spuštění konfiguračního souboru. platí terraform
  6. Nyní použijte veřejnou IP adresu v libovolném webovém prohlížeči pro přístup na webový server instance VM.
  7. Pomocí následujícího příkazu získáte přístup k instanci virtuálního počítače přes SSH ke správě serveru. Zkontrolujte, zda je soukromý klíč v aktuálním adresáři, nebo zadejte cestu k soukromému klíči.
  8. ssh -i @

    Závěr

    To by mělo stačit, abyste mohli začít.  Celý konfigurační soubor, hlavní.tf, je zobrazen níže. Zvýrazněné texty lze měnit podle požadavků uživatele.

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

     
    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-jih1-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 nainstalovat nginx "
     
    síťové rozhraní
    network = "výchozí"
     
    access_config
     


     
    metadata
    sshKeys = "dilanga: $ file (" dilanga.hospoda")"


     
    zdroj "google_compute_firewall" "výchozí"
    name = "nginx-firewall"
    network = "výchozí"
     
    dovolit
    protocol = "tcp"
    porty = ["80", "443"]

     
    dovolit
    protocol = "icmp"


     
    výstup "ip"
    value = "$ google_compute_instance.nucuta.síťové rozhraní.0.access_config.0.nat_ip "
Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...
Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...