Denne guiden viser hvordan du bruker Terraform med Google Cloud-plattformen. Denne guiden antar at brukeren har en konto i Google Cloud-plattformen, og at den er klar til bruk, hvis ikke er det mulig å opprette en gratis prøvekonto med letthet i et år. Google Cloud krever imidlertid at det gis et gyldig kredittkortnummer for å få tilgang til konsollen. sørg derfor for at det blir håndtert før du går videre.
Krav og betingelser
Google Cloud-plattformen består av et stort antall tjenester; Derfor er det vanskelig å dekke dem alle i en enkelt guide, og derfor dekker denne guiden bare Google VM-forekomsten. Den demonstrerer hvordan du installerer en Nginx-webserver i en Ubuntu VM-forekomst i Google Cloud-infrastruktur.
Siden guiden handler om terraform, må den åpenbart installeres i systemet. I tillegg må en SSH-nøkkel genereres for å få tilgang til VM-forekomsten.
Slik installerer du Terraform på Ubuntu
Terraform kan installeres på to forskjellige måter. Den første metoden er manuell måte, som krever at brukeren laster ned og installerer den i systemet, den alternative og mest anbefalte måten er automatisert måte, som laster ned og installerer terraformen i systemet med et par kodelinjer. Følg følgende kommandoer for å få det til.
- Installer pakkepakken i systemet for å trekke ut terraformpakken når den er lastet ned.
- Last ned og installer terraform fra den gitte lenken. Merk at for øyeblikket når artikkelen skrives, er den siste versjonen av terraform 0.11.10. I fremtiden kan versjonen være en annen. Så vær alltid oppmerksom på deres offisielle nettsted for å få informasjon om den nyeste terraform-pakken.
- Pakk ut terraformen til den aktive katalogen. Som standard er det hjemmekatalogen i Ubuntu.
- Flytt terraformen til den binære mappen. Terraform har ikke en oppsettfil; Derfor må den binære filen plasseres i søppelfilen manuelt.
- Bruk følgende kommando for å få tilgang til terraform fra kommandolinjen uten å spesifisere katalogen.
Hvordan lage din egen SSH-nøkkel
Etter installasjon av terraform er det neste viktige trinnet å generere ditt eget SSH offentlige / private nøkkelpar for å kommunisere med VM-forekomsten som er i ferd med å opprettes. SSH-nøkkelpar gir sterk sikkerhet over tradisjonell passord / brukernavngodkjenning; Derfor anbefales det på det sterkeste å følge dette alternativet, selv om det ikke er obligatorisk.
1. På Ubuntu-skallet skriver du inn følgende kommando for å generere SSH-nøkkelparet.
ssh-keygen
2. I begynnelsen ber den om et navn på nøkkelparet, deretter passordet for ssh-nøkkelen. Den offentlige nøkkelen opprettes som
Konfigurer Google Cloud med Terraform
Når nevnte to segmenter er fullført, kan du opprette en gratis prøvekonto i Google Cloud. Siden det å opprette en konto er en enkel prosess, er det ikke beskrevet her. Når du har fått tilgang til Google Cloud-konsollen, følger du trinnene nedenfor for å konfigurere Google Cloud med terraform.
- Naviger til følgende URL.
https: // konsoll.Sky.Google.com
- Klikk på “Mine prosjekter” -knappen øverst til venstre på konsollen.
- Opprett enten et nytt prosjekt eller bruk et eksisterende prosjekt for denne guiden. Formålet med "prosjektet" er å gruppere ulike tjenester i Google Cloud. Prosjektet er den høyeste noden i dette tjenestehierarkiet, og resten av tjenestene går under det. En tjeneste opprettet under ett prosjekt er ikke tilgjengelig fra et annet prosjekt. Når prosjektet ble opprettet, kopier og hold ID-en på et trygt sted. I det følgende skjermbildet er prosjekt-ID karismatisk-sum-202020, og det kan være en annen i sky-konsollen.
- Naviger til følgende nettadresse for å laste ned legitimasjonsfilen i JSON-format for å autentisere brukeren når du kobler til Google Cloud-plattformen. Dette er administratorkontoen; sørg derfor for at denne påloggingsfilen er trygg på et sikkert sted. https: // konsoll.Sky.Google.com / apis / credentials / serviceaccountkey
- Opprett en fil og gi den nytt navn som hoved.tf. Denne filen er konfigurasjonsfilen for terraform, og bruk deretter følgende kodeblokk som de første kodelinjene. Leverandørnavnet er for å oppgi leverandøren å koble seg til. Terraform støtter et stort antall skyplattformer; Derfor må skyplattformens navn oppgis eksplisitt. Her er det Google, noe som betyr at det kobles til Google Cloud-plattformen. Bortsett fra overskriften, er det tre attributter i blokken, "attributter" -attributtet er for å spesifisere påloggingsfilens navn som er lastet ned ovenfor, prosjektnavnet er stedet i google skyen der VM-forekomsten opprettes. ID-en som ble opprettet i trinn 3 brukes som prosjektnavnet her. Region er den geografiske plasseringen der VM-forekomsten opprettes. Det er flere regioner. Bruk denne lenken for å referere til alle tilgjengelige regioner. https: // sky.Google.no / appengine / docs / locations provider "google"
legitimasjon = "$ fil (" CREDENTIALS_FILE.json ")"
prosjekt = "PROJECT_NAME"
region = "REGION_NAME"
- Bruk følgende kommando for å installere plugins for terraform. Følgende kommando skanner automatisk terraform-konfigurasjonsfilen og identifiserer hvilke plugins som skal installeres. I tillegg laster den også ned leverandørinformasjonen for terraform. Denne guiden bruker Google Cloud-plattformen; derav laster den ned informasjon fra Google Cloud Terraform-leverandør. Kommandoen identifiserer leverandøren fra navnet oppgitt ved "leverandør" nøkkelord i terraform-konfigurasjonsfilen. terraform init
- Bruk følgende to kodeblokker for å definere mer informasjon for VM-forekomst. Fra begynnelsen bruker den det tilfeldige ID-pluginet for å generere et tilfeldig tall med 8 sifre, og tildeler deretter tallet til instance_id-variabelen for å bruke det som et prefiks for navnet på VM-instansen. I den andre kodeblokken oppretter den en VM-forekomst med navnet “nucuta-vm-
. Maskintypen er serverpakken som brukes til å være vert for VM-forekomsten. Se denne nettadressen for å finne tilgjengelige maskintyper. https: // sky.Google.com / compute / docs / machine-types. Zone er den nøyaktige plasseringen av regionen. Det er hovedsakelig 3 soner tilgjengelig i hver region, a, b, c. Hver sone har sin egen maskinvare / programvarekonfigurasjon. Bruk denne nettadressen til å referere til alle tilgjengelige soner og deres maskinvarekonfigurasjon. https: // sky.Google.com / compute / docs / regions-zones / resource "random_id" "instance_id"
byte_length = 8
ressurs "google_compute_instance" "nucuta"
name = "nucuta-vm - $ random_id.forekomst_id.hex "
machine_type = "f1-micro"
sone = "asia-sør1-a"
- Bruk følgende kodeblokk inne i “google_compute_instance” kodeblokk. Den spesifiserer operativsystemet som skal brukes. Bruk denne nettadressen til å finne alle tilgjengelige operativsystemer for Google Cloud-plattformen. https: // sky.Google.com / beregne / docs / bilder. Det står image, fordi operativsystemene er lagret som "image" -filer. Når terraform-konfigurasjonsfilen kjøres, blir bildefilen ekstrahert, og operativsystemet er installert i VM-forekomsten, akkurat som på en vanlig datamaskin. Bildeattributtet er i dette formatet, bildeprosjekt / bildefamilie. boot_disk
initialize_params
image = "ubuntu-os-cloud / ubuntu-1604-lts"
- Bruk følgende kode i kodeblokken “google_compute_instance”. Det spesifiserer oppstartsskriptet som skal kjøres på den nylig opprettede VM-forekomsten. Dette skriptet kjøres så snart VM-forekomsten ble opprettet. I det følgende eksemplet oppdateres det lokale pakkeinformasjonsregisteret med den nyeste informasjonen, deretter oppdateres alle pakkene med dist-upgrade, deretter installeres den nginx-pakken. Sørg for å bruke -y flagg for å gjøre prosessen ikke interaktiv, noe som betyr at den automatisk kjøres og utfører prosessen uten å kreve brukerinnblanding. metadata_startup_script = "sudo apt-get -y oppdatering;
sudo apt-get -y dist-upgrade;
sudo apt-get -y install nginx "
- Bruk følgende kodeblokk i kodeblokken “google_compute_instance”. Følgende kodeblokk spesifiserer nettverksgrensesnittet, som brukes til å koble den nåværende VM-forekomsten med andre VM-forekomster, enheter og nettverk. Access_config-blokken brukes til å tildele VM-forekomsten en ekstern IP-adresse for å få tilgang til den fra Internett. nettverksgrensesnitt
nettverk = "standard"
access_config
- Til slutt, bruk følgende kodeblokk i "google_compute_instance" kodeblokk. Den spesifiserer brukernavnet og den offentlige SSH-nøkkelen. Forsikre deg om at den genererte offentlige SSH-nøkkelen er i samme mappe som konfigurasjonsfilen for terraform. Brukernavnet skal være navnet på kontoen der SSH-nøkkelen ble opprettet, for eksempel hvis kontoens navn er root, så er brukernavnet root. metadata
sshKeys = "dilanga: $ file (" dilanga.pub")"
- Den endelige kodeblokken skal se slik ut
- Bruk følgende kodeblokk utenfor av "google_compute_instance" kodeblokk. Som standard blokkerer VM-forekomst all innkommende og utgående trafikk. Siden denne guiden oppretter en webserver, må port 80 og 443 åpnes for å tillate brukere å få tilgang til den via Internett. Fra begynnelsen oppretter navnattributt en profil i google compute brannmur for denne regelen, nettverksattributtet angir hvilket nettverksgrensesnitt regelen gjelder, tillat blokkering tillater protokoller og dens porter spesifisert under den. Icmp-protokollen brukes til å pinge webserveren for å sikre at den er tilgjengelig for publikum. Pinging brukes ofte av mange tjenester for å finne tilgjengeligheten til et nettsted. ressurs "google_compute_firewall" "standard"
navn = "nginx-brannmur"
nettverk = "standard"
tillat
protokoll = "tcp"
porter = ["80", "443"]
tillat
protokoll = "icmp"
- Bruk følgende kodeblokk utenfor av “google_compute_instance” for å skrive ut den nåværende VM-forekomstens offentlige IP-adresse. utgang "ip"
verdi = "$ google_compute_instance.nucuta.nettverksgrensesnitt.0.tilgang_konfig.0.nat_ip "
- Bruk følgende kommando for å bekrefte konfigurasjonsfilen og legitimasjonsfilen. Den viser også hvordan det endelige resultatet ser ut når konfigurasjonsfilen ble kjørt. terraform plan
- bruk deretter følgende kommando for å utføre konfigurasjonsfilen. terraform gjelder
- Bruk nå den offentlige ip-adressen i hvilken som helst nettleser for å få tilgang til VM-forekomstens webserver.
- Bruk følgende kommando for å få tilgang til VM-forekomsten over SSH for å administrere serveren. Forsikre deg om at den private nøkkelen er i gjeldende katalog, eller spesifiser stien til den private nøkkelen.
- ssh -i
@ Konklusjon
Dette burde være nok til at du kommer i gang. Hele konfigurasjonsfilen, hoved.tf, er vist nedenfor. Fremhevede tekster kan endres i henhold til brukerens krav.
leverandør "google"
legitimasjon = "$ file (" dilannga_credentials.json ")"
prosjekt = "karismatisk sum-202020"
region = "Asia-Sør1"
ressurs "random_id" "instance_id"
byte_length = 8
ressurs "google_compute_instance" "nucuta"
name = "nucuta-vm - $ random_id.forekomst_id.hex "
machine_type = "f1-micro"
sone = "asia-sør1-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 install nginx "
nettverksgrensesnitt
nettverk = "standard"
access_config
metadata
sshKeys = "dilanga: $ file (" dilanga.pub")"
ressurs "google_compute_firewall" "standard"
navn = "nginx-brannmur"
nettverk = "standard"
tillat
protokoll = "tcp"
porter = ["80", "443"]
tillat
protokoll = "icmp"
utgang "ip"
verdi = "$ google_compute_instance.nucuta.nettverksgrensesnitt.0.tilgang_konfig.0.nat_ip "