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.
- Installer pakken med udpakning i systemet for at udpakke terraform-pakken, når den er downloadet.
- 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.
- Uddrag terræformen til det aktuelt aktive bibliotek. Som standard er det hjemmebiblioteket i Ubuntu.
- Flyt terraformen til den binære mappe. Terraform har ikke en installationsfil; derfor skal dens binære fil placeres manuelt i bin-filen.
- Brug følgende kommando til at få adgang til terraform fra kommandolinjen uden at angive dens mappe.
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
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.
- Naviger til følgende URL.
https: // konsol.Sky.google.com
- Klik på knappen "Mine projekter" i øverste venstre hjørne af konsollen.
- 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.
- 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
- 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"
- 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
- 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"
- 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"
- 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 "
- 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
- 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 ")"
- Den endelige kodeblok skal se sådan ud
- 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"
- 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 "
- 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
- brug derefter følgende kommando til at udføre konfigurationsfilen. terraform gælder
- Brug nu den offentlige ip-adresse på enhver webbrowser for at få adgang til VM-instansens webserver.
- 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.
- 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 "