Terraform

Sådan bruges Terraform med Google Cloud Platform?

Sådan bruges Terraform med Google Cloud Platform?
Terraform er et værktøj, der let administrerer infrastruktur som koder. Det er udviklet af HashiCorp som et opensource-projekt for cloududviklere til at styre deres infrastruktur på meget højt niveau sprog (HCL). Den største fordel ved dette værktøj er, at det opsamler de største infrastrukturtjenester som AWS, OpenStack, Vultr, Digital Ocean, Google Cloud og giver udviklere mulighed for at forene deres konfiguration i et enkelt standardformat. Oven i det er automatisering og detaljeret udførelse også mulig med Terraform. Den er tilgængelig på Windows-, Linux-, MacOS-platforme og kan bruges med enhver større skyplatform med moderat teknisk viden.

Denne guide viser, hvordan du bruger Terraform med Google Cloud-platformen. Denne vejledning antager, at brugeren har en konto i Google Cloud-platformen, og den er klar til brug, hvis ikke er det muligt at oprette en gratis prøvekonto med lethed i et år. Google Cloud kræver dog, at der indsendes et gyldigt kreditkortnummer for at få adgang til konsollen. Sørg derfor for, at det bliver behandlet, inden du fortsætter.

Krav og betingelser

Google Cloud-platformen består af et stort antal tjenester; Derfor er det svært at dække dem alle i en enkelt guide, og derfor dækker denne vejledning kun afsnittet om Google VM-forekomster. Det demonstrerer, hvordan man installerer en Nginx-webserver i en Ubuntu VM-forekomst i Google Cloud-infrastruktur.

Da guiden handler om terraform, skal den selvfølgelig installeres i systemet. Derudover skal der genereres en SSH-nøgle for at få adgang til VM-forekomsten.

Sådan installeres Terraform på Ubuntu

Terraform kan installeres på to forskellige måder. Den første metode er manuel måde, som kræver, at brugeren downloader og installerer den i systemet, den alternative og mest anbefalede måde er automatiseret måde, som downloader og installerer terraformen i systemet med et par kodelinjer. Følg følgende kommandoer for at få det til at ske.

  1. Installer pakken med udpakning i systemet for at udpakke terraform-pakken, når den er downloadet.
sudo apt-get install udpak
  1. Download og installer terraform fra det givne link. Bemærk, at i det øjeblik, hvor artiklen skrives, er den nyeste version af terraform 0.11.10. I fremtiden kan versionen muligvis være en anden. Så vær altid opmærksom på deres officielle hjemmeside for at få oplysninger om den nyeste terraform-pakke.
wget https: // udgivelser.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.lynlås
  1. Uddrag terræformen til det aktuelt aktive bibliotek. Som standard er det hjemmebiblioteket i Ubuntu.
udpakke terraform_0.11.10_linux_amd64.lynlås
  1. Flyt terraformen til den binære mappe. Terraform har ikke en installationsfil; derfor skal dens binære fil placeres manuelt i bin-filen.
sudo mv terraform / usr / local / bin /
  1. Brug følgende kommando til at få adgang til terraform fra kommandolinjen uden at angive dens mappe.
terraform - version

Sådan genereres din egen SSH-nøgle

Efter installation af terraform er det næste vigtige trin at generere dit eget SSH offentlige / private nøglepar til at kommunikere med den VM-forekomst, der er ved at blive oprettet. SSH-nøglepar giver stærk sikkerhed over den traditionelle godkendelse af adgangskode / brugernavn; derfor anbefales det stærkt at følge denne mulighed, selvom det ikke er obligatorisk.

1. Skriv følgende kommando på Ubuntu-skal for at generere SSH-nøgleparret.

ssh-keygen

2. I starten beder det om et navn på nøgleparret, derefter adgangskoden til ssh-nøglen. Den offentlige nøgle oprettes som .pub, mens den private nøgle oprettes som . Begge nøgler oprettes i det aktuelt aktive bibliotek. Hold den private nøgle sikker et sikkert sted, da det er vigtigt at få adgang til VM-forekomsten.

Konfigurer Google Cloud med Terraform

Når førnævnte to segmenter er afsluttet, skal du oprette en gratis prøvekonto i Google Cloud. Da oprettelse af en konto er en simpel proces, er den ikke beskrevet her. Når du har fået adgang til Google Cloud-konsollen, skal du følge følgende trin for at konfigurere Google Cloud med terraform.

  1. Naviger til følgende URL.
    https: // konsol.Sky.google.com
  1. Klik på knappen "Mine projekter" i øverste venstre hjørne af konsollen.
  2. Opret enten et nyt projekt, eller brug et eksisterende projekt til denne vejledning. Formålet med "projektet" er at gruppere forskellige tjenester i Google Cloud. Projektet er det højeste knudepunkt i dette servicehierarki, og resten af ​​tjenesterne går under det. En tjeneste oprettet under et projekt er ikke tilgængelig fra et andet projekt. Når projektet er oprettet, skal du kopiere og opbevare dets ID et sikkert sted. I det følgende skærmbillede er projekt-id'et karismatisk-sum-202020, og det kan være en anden i din cloud-konsol. 
  3. Naviger til følgende web-url for at downloade legitimationsfilen i JSON-format for at godkende brugeren, når han opretter forbindelse til Google cloud-platformen. Dette er administratorkontoen; Sørg derfor for, at denne legitimationsfil er sikker et sikkert sted. https: // konsol.Sky.google.com / apis / legitimationsoplysninger / serviceaccountkey 
  4. Opret en fil, og omdøb den som hoved.tf. Denne fil er konfigurationsfilen til terraform, og brug derefter følgende kodeblok som dens første kodelinjer. Udbydernavnet er til at angive udbyderen at oprette forbindelse til. Terraform understøtter et stort antal cloudplatforme; derfor skal cloudplatformens navn udtrykkeligt angives. Her er det Google, hvilket betyder, at det forbinder med Google cloud-platform. Bortset fra overskriften er der 3 attributter i blokken, attributten "legitimationsoplysninger" er til angivelse af legitimationsfilens navn, der er downloadet ovenfor, projektnavnet er placeringen i Google Cloud, hvor VM-forekomsten oprettes. Id'et oprettet i trin 3 bruges her som projektnavnet. Region er den geografiske placering, hvor VM-forekomsten oprettes. Der er flere regioner. Brug dette link til at henvise til alle de tilgængelige regioner. https: // sky.google.com / appengine / docs / locations provider "google"
    legitimationsoplysninger = "$ fil (" CREDENTIALS_FILE.json ")"
    projekt = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Brug følgende kommando til at installere plugins til terraform. Følgende kommando scanner automatisk terraform-konfigurationsfilen og identificerer, hvilke plugins der skal installeres. Desuden downloader den også udbyderoplysningerne til terraform. Denne guide bruger Google Cloud-platform; derfor henter det oplysninger fra Google cloud-terraformudbyder. Kommandoen identificerer udbyderen fra det navn, der er angivet ved "udbyder" -nøgleordet i terraform-konfigurationsfilen. terraform init
  1. Brug følgende to kodeblokke til at definere mere information til VM-forekomst. Fra begyndelsen bruger det tilfældigt id-plugin til at generere et tilfældigt tal med 8 cifre, og tildeler derefter dette nummer til instance_id-variablen til brug som et præfiks for navnet på VM-instansen. I den anden kodeblok opretter den en VM-forekomst med navnet “nucuta-vm-. Maskintypen er den serverpakke, der bruges til at være vært for VM-forekomsten. Se denne web-URL for at finde de tilgængelige maskintyper. https: // sky.google.com / compute / docs / maskintyper. Zone er den nøjagtige placering af regionen. Der er hovedsageligt 3 zoner tilgængelige i hver region, a, b, c. Hver zone har sin egen hardware / softwarekonfiguration. Brug denne web-URL til at henvise til alle de tilgængelige zoner og deres hardwarekonfiguration. https: // sky.google.com / compute / docs / regions-zones / resource "random_id" "instance_id"
    byte-længde = 8

    ressource "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instans_id.hex "
    machine_type = "f1-micro"
    zone = "asien-syd1-a"
  1. Brug følgende kodeblok inde i kodeblokken “google_compute_instance”. Det specificerer det operativsystem, der skal bruges. Brug denne web-URL til at finde alle de tilgængelige operativsystemer til Google Cloud-platformen. https: // sky.google.com / beregne / docs / billeder. Det siger billede, fordi operativsystemerne er gemt som "billed" -filer. Når terraform-konfigurationsfilen udføres, ekstraheres billedfilen, og dens operativsystem installeres i VM-forekomsten ligesom på en almindelig computer. Billedattributten er i dette format, billedprojekt / billedfamilie. boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Brug følgende kode i "google_compute_instance" kodeblok. Det specificerer opstartsskriptet, der skal køre på den nyoprettede VM-forekomst. Dette script udføres, så snart VM-forekomsten blev oprettet. I det følgende eksempel opdateres det lokale pakkeinformationsregister med de nyeste oplysninger, derefter opdateres det alle pakkerne med dist-upgrade, derefter installeres det nginx-pakke. Sørg for at bruge -y-flag for at gøre processen ikke-interaktiv, hvilket betyder at den automatisk udfører og udfører processen uden at kræve brugerindblanding. metadata_startup_script = "sudo apt-get -y opdatering;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
  1. Brug følgende kodeblok i kodeblokken “google_compute_instance”. Den følgende kodeblok specificerer netværksgrænsefladen, som bruges til at forbinde den aktuelle VM-forekomst med andre VM-forekomster, enheder og netværk. Access_config-blok bruges til at tildele VM-instansen en ekstern IP-adresse til at få adgang til den fra Internettet. netværksinterface
    netværk = "standard"
    access_config

  1. Brug endelig følgende kodeblok i "google_compute_instance" kodeblok. Det specificerer brugernavn og offentlig SSH-nøgle. Sørg for, at den genererede offentlige SSH-nøgle er i samme mappe som terraform-konfigurationsfilen. Brugernavnet skal være navnet på den konto, hvorfra SSH-nøglen blev oprettet, for eksempel hvis kontoens navn er root, så er dets brugernavn root. metadata
    sshKeys = "dilanga: $ fil (" dilanga.pub ")"

  1. Den endelige kodeblok skal se sådan ud 
  2. Brug følgende kodeblok uden for af "google_compute_instance" kodeblok. Som standard blokerer VM-instans al den indgående og udgående trafik. Da denne vejledning opretter en webserver, skal port 80 og 443 åbnes for at give brugerne adgang til den via Internettet. Fra begyndelsen opretter navneattribut en profil i google compute-firewall til denne regel, netværksattributten specificerer, hvilken netværksgrænseflade reglen gælder, tillad blok tillader protokoller og dens porte, der er specificeret under den. Icmp-protokol bruges til at pinge webserveren for at sikre, at den er tilgængelig for offentligheden. Pinging bruges ofte af mange tjenester for at finde ud af tilgængeligheden af ​​et websted. ressource "google_compute_firewall" "standard"
    navn = "nginx-firewall"
    netværk = "standard"
     
    give lov til
    protokol = "tcp"
    porte = ["80", "443"]

     
    give lov til
    protokol = "icmp"

  3. Brug følgende kodeblok uden for af “google_compute_instance” for at udskrive den aktuelle VM-instanss offentlige IP-adresse. output "ip"
    værdi = "$ google_compute_instance.nucuta.netværk_interface.0.adgang_konfig.0.nat_ip "
  4. Brug følgende kommando til at kontrollere konfigurationsfilen og legitimationsfilen. Det viser også, hvordan det endelige resultat ser ud, når konfigurationsfilen blev udført. terraform plan
  5. brug derefter følgende kommando til at udføre konfigurationsfilen. terraform gælder
  6. Brug nu den offentlige ip-adresse på enhver webbrowser for at få adgang til VM-instansens webserver.
  7. Brug følgende kommando til at få adgang til VM-forekomsten via SSH til at administrere serveren. Sørg for, at den private nøgle er i det aktuelle bibliotek, eller angiv stien til den private nøgle.
  8. ssh -i @

    Konklusion

    Dette skal være nok for dig at komme i gang.  Den fulde konfigurationsfil, main.tf, er vist nedenfor. Fremhævede tekster kan ændres i henhold til brugerens krav.

    udbyder "google"
    legitimationsoplysninger = "$ fil (" dilannga_credentials.json ")"
    projekt = "karismatisk-sum-202020"
    region = "asien-syd1"

     
    ressource "random_id" "instance_id"
    byte-længde = 8

     
    ressource "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instans_id.hex "
    machine_type = "f1-micro"
    zone = "asien-syd1-a"
     
    boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y opdatering; sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
     
    netværksinterface
    netværk = "standard"
     
    access_config
     


     
    metadata
    sshKeys = "dilanga: $ fil (" dilanga.pub ")"


     
    ressource "google_compute_firewall" "standard"
    navn = "nginx-firewall"
    netværk = "standard"
     
    give lov til
    protokol = "tcp"
    porte = ["80", "443"]

     
    give lov til
    protokol = "icmp"


     
    output "ip"
    værdi = "$ google_compute_instance.nucuta.netværk_interface.0.adgang_konfig.0.nat_ip "
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...
Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...