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ů.
- Nainstalujte si do systému rozbalený balíček a po stažení balíček terraformu rozbalte.
- 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.
- Extrahujte terraform do aktuálně aktivního adresáře. Ve výchozím nastavení je to domovský adresář v Ubuntu.
- 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ě.
- Použijte následující příkaz pro přístup k terraformu z příkazového řádku bez zadání jeho adresáře.
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
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ů.
- Přejděte na následující adresu URL.
https: // konzole.mrak.Google.com
- Klikněte na tlačítko „Moje projekty“ v levém horním rohu konzoly.
- 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é.
- 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
- 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"
- 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
- 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"
- 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"
- 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 "
- 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
- 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")"
- Konečný blok kódu by měl vypadat takto
- 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"
- 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 "
- 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
- pak použijte následující příkaz ke spuštění konfiguračního souboru. platí terraform
- Nyní použijte veřejnou IP adresu v libovolném webovém prohlížeči pro přístup na webový server instance VM.
- 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.
- 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 "