Terraform

Slik bruker du Terraform med Google Cloud Platform?

Slik bruker du Terraform med Google Cloud Platform?
Terraform er et verktøy som brukes til å administrere infrastruktur som koder med letthet. Den er utviklet av HashiCorp som et opensource-prosjekt for skyutviklere for å administrere sin infrastruktur på svært høyt nivå språk (HCL). Den største fordelen med dette verktøyet er at det trekker ut de viktigste infrastrukturtjenestene som AWS, OpenStack, Vultr, Digital Ocean, Google Cloud og lar utviklere forene konfigurasjonen i ett standardformat. I tillegg er automatisering og detaljert utførelse også mulig med Terraform. Den er tilgjengelig i Windows, Linux, MacOS-plattformer, og kan brukes med hvilken som helst større skyplattform med moderat teknisk kunnskap.

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.

  1. Installer pakkepakken i systemet for å trekke ut terraformpakken når den er lastet ned.
sudo apt-get install pakke ut
  1. 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.
wget https: // utgivelser.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.glidelås
  1. Pakk ut terraformen til den aktive katalogen. Som standard er det hjemmekatalogen i Ubuntu.
pakke ut terraform_0.11.10_linux_amd64.glidelås
  1. Flytt terraformen til den binære mappen. Terraform har ikke en oppsettfil; Derfor må den binære filen plasseres i søppelfilen manuelt.
sudo mv terraform / usr / local / bin /
  1. Bruk følgende kommando for å få tilgang til terraform fra kommandolinjen uten å spesifisere katalogen.
terraform - versjon

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 .pub, mens den private nøkkelen blir opprettet som . Begge tastene opprettes i den aktive katalogen. Hold den private nøkkelen trygg på et sikkert sted, da det er viktig å få tilgang til VM-forekomsten.

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.

  1. Naviger til følgende URL.
    https: // konsoll.Sky.Google.com
  1. Klikk på “Mine prosjekter” -knappen øverst til venstre på konsollen.
  2. 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. 
  3. 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 
  4. 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"

  1. 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
  1. 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"
  1. 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"

  1. 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 "
  1. 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

  1. 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")"

  1. Den endelige kodeblokken skal se slik ut 
  2. 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"

  3. 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 "
  4. 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
  5. bruk deretter følgende kommando for å utføre konfigurasjonsfilen. terraform gjelder
  6. Bruk nå den offentlige ip-adressen i hvilken som helst nettleser for å få tilgang til VM-forekomstens webserver.
  7. 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.
  8. 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 "
Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...