Terraform

Kako uporabljati Terraform z Google Cloud Platform?

Kako uporabljati Terraform z Google Cloud Platform?
Terraform je orodje za enostavno upravljanje infrastrukture kot kode. HashiCorp ga je razvil kot projekt odprtega vira za razvijalce v oblaku za upravljanje njihove infrastrukture v jeziku na visoki ravni (HCL). Največja prednost tega orodja je, da povzame glavne infrastrukturne storitve, kot so AWS, OpenStack, Vultr, Digital Ocean, Google Cloud in omogoča razvijalcem, da poenotijo ​​svojo konfiguracijo v eni standardni obliki. Poleg tega sta s Terraformom možni tudi avtomatizacija in podrobna izvedba. Na voljo je v platformah Windows, Linux, MacOS in se lahko uporablja s katero koli večjo platformo v oblaku z zmernim tehničnim znanjem.

Ta priročnik prikazuje, kako uporabljati Terraform s platformo Google Cloud. Ta priročnik predvideva, da ima uporabnik račun v platformi Google Cloud in je pripravljen za uporabo, če ne, pa je eno leto mogoče enostavno ustvariti brezplačen preskusni račun. Vendar Google Cloud za dostop do konzole zahteva veljavno številko kreditne kartice; zato se prepričajte, da je to obravnavano, preden nadaljujete.

Zahteve in pogoji

Google Cloud platforma je sestavljena iz velikega števila storitev; zato jih je težko vse zajeti v enem samem priročniku, zato ta vodnik zajema le razdelek o primerkih Google VM. Prikazuje, kako namestiti spletni strežnik Nginx v primerek Ubuntu VM v infrastrukturo Google Cloud.

Ker vodilo govori o teraformi, ga je očitno treba namestiti v sistem. Poleg tega je treba za dostop do primerka VM ustvariti ključ SSH.

Kako namestiti Terraform na Ubuntu

Terraform lahko namestite na dva različna načina. Prvi način je ročni način, ki od uporabnika zahteva, da ga prenese in namesti v sistem, nadomestni in najbolj priporočljiv način pa je avtomatiziran način, ki v sistem naloži in namesti teraform z nekaj kodnimi vrsticami. Sledite naslednjim ukazom, da se to zgodi.

  1. Namestite paket unzip v sistem, da izvlečete paket terraform po prenosu.
sudo apt-get namestite unzip
  1. Prenesite in namestite teraform z dane povezave. Upoštevajte, da je v trenutku, ko pišete članek, najnovejša različica terraform 0.11.10. V prihodnosti bo različica morda drugačna. Zato bodite vedno pozorni na njihovi uradni spletni strani, kjer boste našli informacije o najnovejšem paketu teraform.
wget https: // javnost.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.zadrgo
  1. Izvlecite teraformo v trenutno aktivni imenik. Privzeto je domači imenik v Ubuntuju.
razpakirajte terraform_0.11.10_linux_amd64.zadrgo
  1. Premaknite teraformo v binarno mapo. Terraform nima namestitvene datoteke; zato je treba njegovo binarno datoteko ročno postaviti v bin datoteko.
sudo mv terraform / usr / local / bin /
  1. Uporabite naslednji ukaz za dostop do terraforma iz ukazne vrstice, ne da bi navedli njegov imenik.
teraform --verzija

Kako ustvariti lasten SSH ključ

Po namestitvi terraform je naslednji pomemben korak generiranje lastnega para javnih / zasebnih ključev SSH za komunikacijo z primerkom VM, ki bo kmalu ustvarjen. Par ključev SSH zagotavlja močno zaščito pred tradicionalnim preverjanjem pristnosti gesla / uporabniškega imena; zato je močno priporočljivo upoštevati to možnost, čeprav ni obvezna.

1. V lupino Ubuntu vnesite naslednji ukaz, da ustvarite par ključev SSH.

ssh-keygen

2. Na začetku vpraša ime za par ključev, nato geslo za ključ ssh. Javni ključ je ustvarjen kot .pub, medtem ko je zasebni ključ ustvarjen kot . Obe tipki sta ustvarjeni v trenutno aktivnem imeniku. Zasebni ključ hranite na varnem mestu, saj je za dostop do primerka VM pomembno.

Konfigurirajte Google Cloud s Terraform

Ko sta prej omenjena dva segmenta zaključena, nadaljujte in ustvarite brezplačen preskusni račun v storitvi Google Cloud. Ker je ustvarjanje računa preprost postopek, tukaj ni opisan. Po dostopu do konzole Google Cloud sledite naslednjim korakom za konfiguriranje storitve Google Cloud s teraformo.

  1. Pomaknite se do naslednjega URL-ja.
    https: // konzola.oblak.google.com
  1. V zgornjem levem kotu konzole kliknite gumb »Moji projekti«.
  2. Ustvarite nov projekt ali uporabite obstoječega za ta vodnik. Namen »projekta« je združevanje različnih storitev v Google Cloud. Projekt je najvišje vozlišče te hierarhije storitev, ostale storitve pa se izvajajo pod njim. Storitev, ustvarjena v okviru enega projekta, ni dostopna iz drugega projekta. Ko je projekt ustvarjen, kopirajte in shranite njegov ID na varnem. Na naslednjem posnetku zaslona je ID projekta karizmatična vsota-202020, in morda je drugačen v vaši oblačni konzoli. 
  3. Pomaknite se do naslednjega spletnega naslova, da prenesete datoteko s poverilnicami v obliki JSON za preverjanje pristnosti uporabnika pri povezovanju z Googlovo platformo v oblaku. To je skrbniški račun; zato poskrbite, da bo ta datoteka z poverilnicami varna na varnem mestu. https: // konzola.oblak.google.com / apis / credentials / serviceaccountkey 
  4. Ustvarite datoteko in jo preimenujte v glavno.tf. Ta datoteka je konfiguracijska datoteka za teraform, nato uporabite naslednji blok kode kot prve vrstice kode. Ime ponudnika je namenjeno navedbi ponudnika, s katerim se je treba povezati. Terraform podpira veliko število oblačnih platform; zato mora biti ime platforme v oblaku izrecno navedeno. Tu gre za Google, kar pomeni, da se poveže z Googlovo platformo v oblaku. Poleg naslova so v bloku še tri atributi, atribut »poverilnice« je namenjen zgoraj prenesenemu imenu datoteke poverilnic, ime projekta je lokacija v Googlovem oblaku, kjer je ustvarjen primerek VM. ID, ustvarjen v 3. koraku, se tukaj uporablja kot ime projekta. Regija je geografska lokacija, kjer se ustvari primerek VM. Obstaja več regij. Na tej povezavi se lahko sklicujete na vsa razpoložljiva območja. https: // oblak.google.com / appengine / docs / location provider "google"
    poverilnice = "$ datoteka (" CREDENTIALS_FILE.json ")"
    project = "PROJECT_NAME"
    regija = "REGION_NAME"

  1. Z naslednjim ukazom namestite vtičnike za terraform. Naslednji ukaz samodejno pregleda konfiguracijsko datoteko terraform in ugotovi, katere vtičnike je treba namestiti, poleg tega pa prenese tudi informacije o ponudniku za terraform. Ta priročnik uporablja platformo Google Cloud; zato prenaša informacije o Googlovem ponudniku oblaka v oblaku. Ukaz identificira ponudnika iz imena, navedenega pri ključni besedi "ponudnik" v konfiguracijski datoteki terraform. teraform init
  1. Z naslednjima dvema kodnima blokoma določite več informacij za primerek VM. Od začetka uporablja vtičnik naključni id za generiranje naključnega števila z 8 števkami, nato pa to število dodeli spremenljivki instance_id za uporabo kot predpono imena za primerek VM. V drugem bloku kode ustvari primerek VM z imenom “nucuta-vm-. Tip stroja je strežniški paket, ki se uporablja za gostovanje primerka VM. Poiščite razpoložljive tipe naprav na tem spletnem naslovu. https: // oblak.google.com / compute / docs / machine-types. Cona je natančna lokacija regije. V vsaki regiji so na voljo predvsem 3 cone, a, b, c. Vsako območje ima lastno konfiguracijo strojne / programske opreme. S tem spletnim URL-jem se sklicujte na vsa razpoložljiva območja in njihovo konfiguracijo strojne opreme. https: // oblak.google.com / compute / docs / region-zone / resource "random_id" "instance_id"
    dolžina bajta = 8

    vir "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zone = "azija-jug1-a"
  1. Uporabite naslednji blok kode znotraj bloka kode »google_compute_instance«. Določa operacijski sistem, ki ga je treba uporabiti. S tem spletnim URL-jem poiščite vse razpoložljive operacijske sisteme za google platformo v oblaku. https: // oblak.google.com / compute / docs / images. Piše slika, ker so operacijski sistemi shranjeni kot "slikovne" datoteke. Ko se izvrši konfiguracijska datoteka terraform, se slikovna datoteka izvleče in njen operacijski sistem se namesti v primerek VM tako kot v običajnem računalniku. Atribut slike je v tej obliki, imidž projekt / družina slik. boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. V bloku kode »google_compute_instance« uporabite naslednjo kodo. Določa zagonski skript za zagon na novo ustvarjenem primerku VM. Ta skript se izvede takoj, ko je bil ustvarjen primerek VM. V naslednjem primeru posodobi lokalno repozitorij informacij o paketih z najnovejšimi informacijami, nato pa vse pakete posodobi z dist-upgrade, nato pa namesti paket nginx. Uporabite zastavico -y, da postopek postane interaktiven, kar pomeni, da se postopek samodejno izvede in izvede, ne da bi bilo treba posredovati uporabnika. metadata_startup_script = "posodobitev sudo apt-get -y;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y namestite nginx "
  1. Uporabite naslednji blok kode v bloku kode »google_compute_instance«. Naslednji blok kode določa omrežni vmesnik, ki se uporablja za povezovanje trenutnega primerka VM z drugimi primerki VM, napravami in omrežji. Blok Access_config se uporablja za dodelitev primerka VM zunanjega naslova IP za dostop do njega iz interneta. network_interface
    network = "privzeto"
    access_config

  1. Na koncu uporabite še naslednji blok kode v bloku kode »google_compute_instance«. Določa uporabniško ime in javni SSH ključ. Prepričajte se, da je ustvarjeni javni SSH ključ v isti mapi kot konfiguracijska datoteka terraform. Uporabniško ime bi moralo biti ime računa, od koder je bil ustvarjen ključ SSH, na primer, če je ime računa root, potem je njegovo uporabniško ime root. metapodatki
    sshKeys = "dilanga: $ datoteka (" dilanga.pub ")"

  1. Končni blok kode bi moral izgledati tako 
  2. Uporabite naslednji blok kode zunaj bloka kode »google_compute_instance«. Primerek VM blokira ves dohodni in odhodni promet. Ker ta vodnik ustvarja spletni strežnik, je treba odpreti vrata 80 in 443, da lahko uporabniki dostopajo do njega prek interneta. Atribut name od začetka ustvarja profil v google compute firewall za to pravilo, omrežni atribut določa, na kateri omrežni vmesnik se pravilo uporablja, dovoli blok omogoča protokole in njegova vrata, določena pod njim. Icmp protokol se uporablja za pinganje spletnega strežnika, da se prepriča, ali je na voljo javnosti. Številne službe pogosto uporabljajo pinging, da bi ugotovile razpoložljivost spletnega mesta. vir "google_compute_firewall" "privzeto"
    name = "nginx-firewall"
    network = "privzeto"
     
    dovoli
    protokol = "tcp"
    vrata = ["80", "443"]

     
    dovoli
    protocol = "icmp"

  3. Uporabite naslednji blok kode zunaj od »google_compute_instance« za tiskanje javnega naslova IP trenutnega primerka VM. izhod "ip"
    value = "$ google_compute_instance.nucuta.omrežni_vmesnik.0.access_config.0.nat_ip "
  4. Z naslednjim ukazom preverite konfiguracijsko datoteko in datoteko s poverilnicami. Predogleda tudi, kako izgleda končni rezultat, ko je bila konfiguracijska datoteka izvedena. načrt teraforme
  5. nato z naslednjim ukazom zaženite konfiguracijsko datoteko. uporabljati teraformo
  6. Zdaj uporabite javni naslov ip v katerem koli spletnem brskalniku za dostop do spletnega strežnika primerka VM.
  7. Za upravljanje strežnika uporabite naslednji ukaz za dostop do primerka VM prek SSH. Prepričajte se, da je zasebni ključ v trenutnem imeniku, ali določite pot do zasebnega ključa.
  8. ssh -i @

    Zaključek

    To bi moralo biti dovolj za začetek.  Celotna konfiguracijska datoteka, glavna.tf, je prikazano spodaj. Označena besedila je mogoče spreminjati glede na zahteve uporabnika.

    ponudnik "google"
    poverilnice = "$ datoteka (" dilannga_credentials.json ")"
    projekt = "karizmatična vsota-202020"
    regija = "azija-jug1"

     
    vir "random_id" "instance_id"
    dolžina bajta = 8

     
    vir "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-micro"
    zone = "azija-jug1-a"
     
    boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "posodobitev sudo apt-get -y; sudo apt-get -y dist-upgrade;
    sudo apt-get -y namestite nginx "
     
    network_interface
    network = "privzeto"
     
    access_config
     


     
    metapodatki
    sshKeys = "dilanga: $ datoteka (" dilanga.pub ")"


     
    vir "google_compute_firewall" "privzeto"
    name = "nginx-firewall"
    network = "privzeto"
     
    dovoli
    protokol = "tcp"
    vrata = ["80", "443"]

     
    dovoli
    protocol = "icmp"


     
    izhod "ip"
    value = "$ google_compute_instance.nucuta.omrežni_vmesnik.0.access_config.0.nat_ip "
SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...
Vadnica za bitko za Wesnoth
Bitka za Wesnoth je ena izmed najbolj priljubljenih odprtokodnih strateških iger, ki jih lahko trenutno igrate. Ne samo, da se ta igra razvija že zelo...
0 A.D. Vadnica
Od številnih strateških iger tam 0 A.D. uspe izstopati kot izčrpen naslov in zelo globoka, taktična igra, čeprav je odprtokodna. Razvoj igre deluje ze...