Terraform

Hur man använder Terraform med Google Cloud Platform?

Hur man använder Terraform med Google Cloud Platform?
Terraform är ett verktyg som används för att enkelt hantera infrastruktur som koder. Den har utvecklats av HashiCorp som ett opensource-projekt för molnutvecklare att hantera sin infrastruktur på mycket högt språk (HCL). Den största fördelen med detta verktyg är att det tar bort de stora infrastrukturtjänsterna som AWS, OpenStack, Vultr, Digital Ocean, Google Cloud och gör det möjligt för utvecklare att förena sin konfiguration i ett enda standardformat. Utöver det är automatisering och detaljerad körning också möjlig med Terraform. Den finns i Windows, Linux, MacOS-plattformar och kan användas med alla större molnplattformar med måttlig teknisk kunskap.

Den här guiden visar hur du använder Terraform med Google Cloud-plattformen. Den här guiden antar att användaren har ett konto på Google Cloud-plattformen och att det är klart att använda, om inte är det möjligt att skapa ett gratis testkonto med lätthet i ett år. Google Cloud kräver dock att ett giltigt kreditkortsnummer måste skickas in för att få åtkomst till dess konsol. Se därför till att det hanteras innan du går vidare.

Krav och villkor

Google Cloud-plattformen består av ett stort antal tjänster; Därför är det svårt att täcka dem alla i en enda guide, och därför täcker den här guiden endast avsnittet om Google VM-instanser. Det visar hur man installerar en Nginx-webbserver i en Ubuntu VM-instans i Google Cloud-infrastruktur.

Eftersom guiden handlar om terraform måste den självklart installeras i systemet. Dessutom måste en SSH-nyckel genereras för att komma åt VM-instansen.

Hur man installerar Terraform på Ubuntu

Terraform kan installeras på två olika sätt. Den första metoden är manuellt sätt, vilket kräver att användaren laddar ner och installerar det i systemet, det alternativa och det mest rekommenderade sättet är automatiserat sätt, som laddar ner och installerar terraformen i systemet med ett par kodrader. Följ följande kommandon för att få det att hända.

  1. Installera packningspaketet i systemet för att extrahera terraformpaketet när det har laddats ner.
sudo apt-get install unzip
  1. Ladda ner och installera terraform från den givna länken. Observera att när artikeln skrivs är den senaste versionen av terraform 0.11.10. I framtiden kan versionen vara annorlunda. Så var alltid uppmärksam på deras officiella webbplats för att få information om det senaste terraformpaketet.
wget https: // släpper.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.blixtlås
  1. Extrahera terraformen till den aktuella katalogen. Som standard är det hemkatalogen i Ubuntu.
packa upp terraform_0.11.10_linux_amd64.blixtlås
  1. Flytta terraformen till den binära mappen. Terraform har ingen installationsfil. därför måste dess binära fil placeras i bin-filen manuellt.
sudo mv terraform / usr / local / bin /
  1. Använd följande kommando för att komma åt terraform från kommandoraden utan att ange dess katalog.
terraform --version

Hur du skapar din egen SSH-nyckel

Efter installation av terraform är nästa viktiga steg att generera ditt eget SSH offentliga / privata nyckelpar för att kommunicera med den VM-instans som håller på att skapas. SSH-nyckelpar ger stark säkerhet över den traditionella autentiseringen av lösenord / användarnamn; följaktligen rekommenderas starkt att följa detta alternativ även om det inte är obligatoriskt.

1. Skriv följande kommando på Ubuntu-skal för att generera SSH-nyckelparet.

ssh-keygen

2. I början frågar det ett namn för nyckelparet och sedan lösenfrasen för ssh-tangenten. Den offentliga nyckeln skapas som .pub, medan den privata nyckeln skapas som . Båda tangenterna skapas i den aktuella katalogen. Håll den privata nyckeln säker på en säker plats eftersom det är viktigt att komma åt VM-instansen.

Konfigurera Google Cloud med Terraform

När ovan nämnda två segment har slutförts, skapa ett gratis testkonto i Google Cloud. Eftersom det är enkelt att skapa ett konto beskrivs det inte här. När du har fått åtkomst till Google Cloud-konsolen följer du följande steg för att konfigurera Google Cloud med terraform.

  1. Navigera till följande URL.
    https: // konsol.moln.Google.com
  1. Klicka på knappen "Mina projekt" i konsolets övre vänstra hörn.
  2. Skapa antingen ett nytt projekt eller använd ett befintligt projekt för den här guiden. Syftet med ”projektet” är att gruppera olika tjänster i Google Cloud. Projektet är den högsta noden i denna tjänstehierarki, och resten av tjänsterna går under den. En tjänst som skapats under ett projekt är inte tillgänglig från ett annat projekt. När projektet skapades, kopiera och förvara dess ID på en säker plats. I följande skärmdump är projekt-id: t karismatisk summa 202020, och det kan vara en annan i din molnkonsol. 
  3. Navigera till följande webbadress för att ladda ner referensfilen i JSON-format för att autentisera användaren när du ansluter till Googles molnplattform. Detta är administratörskontot; Se därför till att den här referensfilen är säker på en säker plats. https: // konsol.moln.Google.com / apis / credentials / serviceaccountkey 
  4. Skapa en fil och byt namn på den som huvud.tf. Den här filen är konfigurationsfilen för terraform, använd sedan följande kodblock som dess första kodrader. Leverantörens namn är för att ange leverantören att ansluta till. Terraform stöder ett stort antal molnplattformar; därav måste molnplattformens namn uttryckligen anges. Här är det Google, vilket innebär att det ansluter till Googles molnplattform. Förutom rubriken finns det tre attribut i blocket, attributet "credentials" är för att specificera referensfilens namn som laddats ner ovan, projektnamnet är platsen i google-molnet där VM-instansen skapas. Id som skapades i steg 3 används som projektnamn här. Region är den geografiska platsen där VM-instansen skapas. Det finns flera regioner. Använd den här länken för att hänvisa till alla tillgängliga regioner. https: // moln.Google.com / appengine / docs / locations provider "google"
    referenser = "$ fil (" CREDENTIALS_FILE.json ")"
    projekt = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Använd följande kommando för att installera plugins för terraform. Följande kommando genomsöker automatiskt terraform-konfigurationsfilen och identifierar vilka plugins som ska installeras, dessutom laddar det också ner leverantörsinformation för terraform. Den här guiden använder Google Cloud-plattformen; det hämtar därför information från Googles molnterraformleverantör. Kommandot identifierar leverantören från namnet som anges vid "leverantör" nyckelord i terraform-konfigurationsfilen. terraform init
  1. Använd följande två kodblock för att definiera mer information för VM-instans. Från början använder den slumpmässiga id-plugin för att generera ett slumpmässigt nummer med 8 siffror och tilldelar sedan det numret till instans_id-variabel för att använda som ett prefix för namnet på VM-instans. I det andra kodblocket skapas en VM-instans med namnet "nucuta-vm-. Maskintypen är det serverpaket som används för att vara värd för VM-instansen. Se denna webb-URL för att hitta tillgängliga maskintyper. https: // moln.Google.com / beräkna / docs / maskintyper. Zon är den exakta platsen för regionen. Det finns huvudsakligen 3 zoner tillgängliga i varje region, a, b, c. Varje zon har sin egen hårdvaru- / programvarukonfiguration. Använd denna webbadress för att hänvisa till alla tillgängliga zoner och deras hårdvarukonfiguration. https: // moln.Google.com / compute / docs / regions-zones / resource "random_id" "instance_id"
    byte_length = 8

    resurs "google_compute_instance" "nucuta"
    namn = "nucuta-vm - $ random_id.instans_id.hex "
    machine_type = "f1-micro"
    zone = "asia-south1-a"
  1. Använd följande kodblock inuti kodblocket “google_compute_instance”. Det anger vilket operativsystem som ska användas. Använd den här webbadressen för att hitta alla tillgängliga operativsystem för google molnplattform. https: // moln.Google.com / beräkna / docs / bilder. Det står bild, eftersom operativsystemen lagras som "bildfiler". När terraform-konfigurationsfilen körs extraheras bildfilen och dess operativsystem installeras i VM-instansen precis som på en vanlig dator. Bildattributet är i detta format, bildprojekt / bildfamilj. startdiskett
    initialisera_param
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Använd följande kod i kodblocket “google_compute_instance”. Den anger startskriptet som ska köras på den nyligen skapade VM-instansen. Det här skriptet körs så snart VM-instansen skapades. I följande exempel uppdateras den lokala paketinformationsförvaret med den senaste informationen, sedan uppdateras alla paket med dist-upgrade, sedan installeras det nginx-paketet. Se till att använda -y-flaggan för att göra processen icke-interaktiv, vilket innebär att den automatiskt kör och utför processen utan att användaren behöver ingripa. metadata_startup_script = "sudo apt-get -y uppdatering;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
  1. Använd följande kodblock i kodblocket “google_compute_instance”. Följande kodblock specificerar nätverksgränssnittet som används för att ansluta den aktuella VM-instansen till andra VM-instanser, enheter och nätverk. Access_config-blocket används för att allokera VM-instansen en extern IP-adress för att komma åt den från Internet. nätverksgränssnitt
    nätverk = "standard"
    access_config

  1. Slutligen, använd följande kodblock i “google_compute_instance” kodblock. Den anger användarnamnet och den offentliga SSH-nyckeln. Se till att den genererade offentliga SSH-nyckeln finns i samma mapp som konfigurationsfilen för terraform. Användarnamnet ska vara namnet på kontot från vilket SSH-nyckeln skapades, till exempel om kontots namn är root är dess användarnamn root. metadata
    sshKeys = "dilanga: $ file (" dilanga.pub")"

  1. Det slutliga kodblocket ska se ut så här 
  2. Använd följande kodblock utanför av kodblocket “google_compute_instance”. Som standard blockerar VM-instans all inkommande och utgående trafik. Eftersom den här guiden skapar en webbserver måste port 80 och 443 öppnas för att användare ska kunna komma åt den via Internet. Från början skapar namnattribut en profil i google compute-brandväggen för denna regel, nätverksattributet anger vilket nätverksgränssnitt regeln gäller, tillåt block tillåter protokoll och dess portar som anges under den. Icmp-protokollet används för att pinga webbservern för att se till att den är tillgänglig för allmänheten. Pinging används ofta av många tjänster för att ta reda på tillgängligheten på en webbplats. resurs "google_compute_firewall" "standard"
    namn = "nginx-brandvägg"
    nätverk = "standard"
     
    tillåt
    protokoll = "tcp"
    portar [[80 "," 443 "]

     
    tillåt
    protokoll = "icmp"

  3. Använd följande kodblock utanför av “google_compute_instance” för att skriva ut den aktuella VM-instansens offentliga IP-adress. utdata "ip"
    värde = "$ google_compute_instance.nucuta.nätverksgränssnitt.0.access_config.0.nat_ip "
  4. Använd följande kommando för att verifiera konfigurationsfilen och referensfilen. Det förhandsgranskar också hur det slutliga resultatet ser ut när konfigurationsfilen kördes. terraform plan
  5. använd sedan följande kommando för att köra konfigurationsfilen. terraform gäller
  6. Använd nu den offentliga ip-adressen i vilken webbläsare som helst för att komma åt VM-instansens webbserver.
  7. Använd följande kommando för att komma åt VM-instansen via SSH för att hantera servern. Se till att den privata nyckeln finns i den aktuella katalogen eller ange sökvägen till den privata nyckeln.
  8. ssh -i @

    Slutsats

    Detta borde vara tillräckligt för att du ska komma igång.  Hela konfigurationsfilen, huvud.tf, visas nedan. Markerade texter kan ändras enligt användarens krav.

    leverantör "google"
    referenser = "$ file (" dilannga_credentials.json ")"
    projekt = "karismatisk summa-202020"
    region = "Asien-syd1"

     
    resurs "random_id" "instance_id"
    byte_length = 8

     
    resurs "google_compute_instance" "nucuta"
    namn = "nucuta-vm - $ random_id.instans_id.hex "
    machine_type = "f1-micro"
    zone = "asia-south1-a"
     
    startdiskett
    initialisera_param
    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 "
     
    nätverksgränssnitt
    nätverk = "standard"
     
    access_config
     


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


     
    resurs "google_compute_firewall" "standard"
    namn = "nginx-brandvägg"
    nätverk = "standard"
     
    tillåt
    protokoll = "tcp"
    portar [[80 "," 443 "]

     
    tillåt
    protokoll = "icmp"


     
    utdata "ip"
    värde = "$ google_compute_instance.nucuta.nätverksgränssnitt.0.access_config.0.nat_ip "
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...