Terraform

Kako koristiti Terraform s Google Cloud Platformom?

Kako koristiti Terraform s Google Cloud Platformom?
Terraform je alat koji se lako koristi za upravljanje infrastrukturom kao kodovima. Razvio ga je HashiCorp kao projekt otvorenog izvora za programere oblaka za upravljanje njihovom infrastrukturom na jeziku visoke razine (HCL). Najveća prednost ovog alata je što apstrahira glavne infrastrukturne usluge kao što su AWS, OpenStack, Vultr, Digital Ocean, Google Cloud i omogućava programerima da objedine svoju konfiguraciju u jedinstvenom standardnom formatu. Povrh toga, automatizacija i detaljna izvedba također su mogući s Terraformom. Dostupan je u sustavima Windows, Linux, MacOS i može se koristiti sa bilo kojom većom oblačnom platformom s umjerenom razinom tehničkog znanja.

Ovaj vodič pokazuje kako koristiti Terraform s Google Cloud platformom. Ovaj vodič pretpostavlja da korisnik ima račun na Google Cloud platformi i spreman je za upotrebu, ako ne, moguće je s lakoćom stvoriti besplatni probni račun godinu dana. Međutim, Google Cloud traži pristup valjanom broju kreditne kartice kako bi pristupio svojoj konzoli; stoga se pobrinite za to prije nego što nastavite.

Zahtjevi i uvjeti

Google Cloud platforma sastoji se od velikog broja usluga; stoga je teško pokriti ih sve u jednom vodiču, pa stoga ovaj vodič pokriva samo odjeljak instanci Google VM-a. Pokazuje kako instalirati Nginx web poslužitelj u instancu Ubuntu VM u infrastrukturi Google Cloud.

Budući da je vodič o teraformi, očito ga mora biti instaliran u sustav. Uz to, SSH ključ mora se generirati kako bi se pristupio VM instanci.

Kako instalirati Terraform na Ubuntu

Terraform se može instalirati na dva različita načina. Prva metoda je ručni način, koji zahtijeva da ga korisnik preuzme i instalira u sustav, a alternativni i najpreporučljiviji način je automatizirani način koji preuzima i instalira teraformu u sustav s nekoliko linija koda. Slijedite sljedeće naredbe da biste to ostvarili.

  1. Instalirajte paket za raspakiranje u sustav da biste izdvojili paket terraform nakon preuzimanja.
sudo apt-get instalacija raspakirajte
  1. Preuzmite i instalirajte teraform s dane poveznice. Imajte na umu da je u trenutku pisanja članka najnovija verzija teraforme 0.11.10. U budućnosti bi inačica mogla biti drugačija. Stoga uvijek obratite pažnju na njihovu službenu web stranicu kako biste dobili informacije o najnovijem paketu teraforme.
wget https: // izdanja.hašikorp.com / terraform / 0.11.10 / teraforma_0.11.10_linux_amd64.zip
  1. Izdvojite teraform u trenutno aktivni direktorij. Prema zadanim postavkama to je direktorij Home u Ubuntuu.
raspakirajte teraform_0.11.10_linux_amd64.zip
  1. Premjestite teraformu u binarnu mapu. Terraform nema datoteku za postavljanje; stoga se njegova binarna datoteka mora ručno staviti u bin datoteku.
sudo mv terraform / usr / local / bin /
  1. Upotrijebite sljedeću naredbu za pristup teraformi iz naredbenog retka bez navođenja njegovog direktorija.
teraform --verzija

Kako generirati vlastiti SSH ključ

Nakon instalacije terraform-a, sljedeći važan korak je generiranje vlastitog para SSH javnih / privatnih ključeva za komunikaciju s instancom VM-a koja će se stvoriti. Par SSH ključeva pruža snažnu sigurnost u odnosu na tradicionalnu autentifikaciju lozinkom / korisničkim imenom; stoga se snažno preporučuje pridržavanje ove opcije iako nije obavezno.

1. Na Ubuntu ljusci upišite sljedeću naredbu da biste generirali par SSH ključeva.

ssh-keygen

2. Na početku traži ime za par ključeva, a zatim lozinku za ssh ključ. Javni ključ kreira se kao .pub, dok je privatni ključ stvoren kao . Obje tipke stvorene su u trenutno aktivnom direktoriju. Čuvajte privatni ključ na sigurnom mjestu, jer je važno pristupiti instanci VM-a.

Konfigurirajte Google Cloud s Terraformom

Nakon što se završe navedena dva segmenta, izvolite i stvorite besplatni probni račun na Google Cloudu. Budući da je stvaranje računa jednostavan postupak, ovdje nije opisan. Nakon što pristupite konzoli Google Cloud, slijedite sljedeće korake za konfiguriranje Google Cloud-a s teraformom.

  1. Idite na sljedeći URL.
    https: // konzola.oblak.google.com
  1. Kliknite gumb "Moji projekti" u gornjem lijevom kutu konzole.
  2. Stvorite novi projekt ili upotrijebite postojeći za ovaj vodič. Svrha "projekta" je grupiranje različitih usluga u Google Cloudu. Projekt je najviši čvor ove hijerarhije usluga, a ostatak usluga ide pod njega. Usluga stvorena u okviru jednog projekta nije dostupna iz drugog projekta. Jednom kad je projekt stvoren, kopirajte i čuvajte njegov ID negdje na sigurnom. Na sljedećem snimku zaslona ID projekta je karizmatična suma-202020, a možda je i drugačija u vašoj oblačnoj konzoli. 
  3. Idite na sljedeći web url da biste preuzeli datoteku vjerodajnica u JSON formatu za autentifikaciju korisnika prilikom povezivanja s Googleovom oblačnom platformom. Ovo je administratorski račun; stoga se pobrinite da je ova vjerodajnica sigurna na sigurnom mjestu. https: // konzola.oblak.google.com / apis / credentials / serviceaccountkey 
  4. Stvorite datoteku i preimenujte je u glavnu.tf. Ova je datoteka konfiguracijska datoteka za teraform, a zatim upotrijebite sljedeći blok koda kao prve retke koda. Ime davatelja služi za navođenje dobavljača s kojim se treba povezati. Terraform podržava velik broj oblačnih platformi; stoga naziv platforme u oblaku mora biti izričito naveden. Ovdje je Google, što znači da se povezuje s Googleovom oblačnom platformom. Osim zaglavlja, u bloku postoje 3 atributa, atribut "vjerodajnice" služi za specificiranje gore preuzetog imena vjerodajnice, naziv projekta je mjesto u google oblaku na kojem se kreira VM instanca. ID stvoren u koraku 3 ovdje se koristi kao naziv projekta. Regija je geografsko mjesto na kojem se kreira VM instanca. Postoji više regija. Koristite ovu vezu za upućivanje na sve dostupne regije. https: // oblak.google.com / appengine / docs / location provider "google"
    vjerodajnice = "$ datoteka (" CREDENTIALS_FILE.json ")"
    projekt = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Upotrijebite sljedeću naredbu za instaliranje dodataka za terraform. Sljedeća naredba automatski skenira konfiguracijsku datoteku terraform-a i identificira koji će se dodaci instalirati, a osim toga preuzima informacije o davatelju usluga za Terraform. Ovaj vodič koristi Google Cloud platformu; stoga preuzima podatke o Googleovom pružatelju usluga u obliku oblaka. Naredba identificira davatelja iz imena navedenog u ključnoj riječi "provider" u konfiguracijskoj datoteci terraform. teraform init
  1. Upotrijebite sljedeća dva bloka koda za definiranje više informacija za VM instancu. Od početka koristi dodatak random id za generiranje slučajnog broja s 8 znamenki, a zatim taj broj dodjeljuje varijabli instance_id za upotrebu kao prefiks za ime instance VM. U drugom bloku koda stvara VM instancu s imenom “nucuta-vm-. Tip stroja je paket poslužitelja koji se koristi za hostiranje VM instance. Pogledajte ovaj web URL kako biste pronašli dostupne vrste strojeva. https: // oblak.google.com / compute / docs / machine-types. Zona je točno mjesto regije. U svakoj su regiji uglavnom dostupne 3 zone, a, b, c. Svaka zona ima svoju hardversku / softversku konfiguraciju. Koristite ovaj web URL za upućivanje na sve dostupne zone i njihovu hardversku konfiguraciju. https: // oblak.google.com / compute / docs / region-zone / resource "random_id" "instance_id"
    duljina bajta = 8

    resurs "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    tip_mašine = "f1-mikro"
    zone = "azija-jug1-a"
  1. Upotrijebite sljedeći blok koda unutar bloka koda "google_compute_instance". Određuje operativni sustav koji će se koristiti. Koristite ovaj web URL da biste pronašli sve dostupne operativne sustave za google cloud platformu. https: // oblak.google.com / compute / docs / images. Kaže slika, jer su operativni sustavi pohranjeni kao "slikovne" datoteke. Kada se izvršava datoteka konfiguracije terraform, datoteka slike se ekstrahira, a njezin operativni sustav instalira se u VM instancu baš kao i na uobičajenom računalu. Atribut slike je u ovom formatu, projekt slike / obitelj slika. boot_disk
    initialize_params
    slika = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Upotrijebite sljedeći kôd u bloku koda "google_compute_instance". Navodi skriptu za pokretanje koja će se izvoditi na novostvorenoj instanci VM. Ova se skripta izvršava čim je stvorena instanca VM. U sljedećem primjeru ažurira lokalno spremište informacija o paketima s najnovijim informacijama, zatim ažurira sve pakete dist-upgradeom, a zatim instalira nginx paket. Obavezno upotrijebite zastavicu -y kako biste postupak učinili neinteraktivnim, što znači da se automatski izvršava i provodi postupak bez potrebe za intervencijom korisnika. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y instaliraj nginx "
  1. Upotrijebite sljedeći blok koda u bloku koda "google_compute_instance". Sljedeći blok koda navodi mrežno sučelje koje se koristi za povezivanje trenutne VM instance s drugim VM instancama, uređajima i mrežama. Blok Access_config koristi se za dodjelu instance VM vanjske IP adrese za pristup s Interneta. network_interface
    network = "zadani"
    access_config

  1. Napokon, upotrijebite sljedeći blok koda u bloku koda "google_compute_instance". Navodi korisničko ime i javni SSH ključ. Provjerite je li generirani javni SSH ključ u istoj mapi kao i konfiguracijska datoteka teraform. Korisničko ime trebalo bi biti ime računa s kojeg je stvoren SSH ključ, na primjer, ako je ime računa root, tada je korisničko ime root. metapodaci
    sshKeys = "dilanga: $ datoteka (" dilanga.pub ")"

  1. Završni blok koda trebao bi izgledati ovako 
  2. Upotrijebite sljedeći blok koda izvana bloka koda "google_compute_instance". Prema zadanim postavkama VM instanca blokira sav dolazni i odlazni promet. Budući da ovaj vodič stvara web poslužitelj, moraju se otvoriti porta 80 i 443 kako bi se korisnicima omogućilo da mu pristupe putem Interneta. Od početka, atribut name stvara profil u google compute firewall-u za ovo pravilo, mrežni atribut određuje na koje mrežno sučelje se pravilo primjenjuje, dozvoli blok omogućuje protokole i njegove portove navedene ispod njega. Icmp protokol koristi se za pinganje web poslužitelja kako bi se osiguralo da je dostupan javnosti. Mnoge usluge često koriste pinging kako bi doznale dostupnost web mjesta. resurs "google_compute_firewall" "zadani"
    name = "nginx-firewall"
    network = "zadani"
     
    dopustiti
    protokol = "tcp"
    priključci = ["80", "443"]

     
    dopustiti
    protocol = "icmp"

  3. Upotrijebite sljedeći blok koda izvana "google_compute_instance" za ispis javne IP adrese trenutne VM instance. izlaz "ip"
    vrijednost = "$ google_compute_instance.nucuta.sučelje_ mreže.0.pristup_konfig.0.nat_ip "
  4. Upotrijebite sljedeću naredbu za provjeru konfiguracijske datoteke i datoteke vjerodajnica. Također pregledava kako izgleda konačni ishod nakon izvršavanja konfiguracijske datoteke. plan teraforme
  5. zatim upotrijebite sljedeću naredbu za izvršavanje konfiguracijske datoteke. primijeniti teraformu
  6. Sada koristite javnu ip adresu na bilo kojem web pregledniku za pristup web poslužitelju VM instance.
  7. Upotrijebite sljedeću naredbu za pristup instanci VM preko SSH za upravljanje poslužiteljem. Provjerite nalazi li se privatni ključ u trenutnom direktoriju ili odredite put do privatnog ključa.
  8. ssh -i @

    Zaključak

    Ovo bi vam trebalo biti dovoljno za početak.  Puna konfiguracijska datoteka, glavna.tf, prikazano je dolje. Označeni tekstovi mogu se mijenjati prema zahtjevima korisnika.

    davatelj usluga "google"
    vjerodajnice = "$ datoteka (" dilannga_credentials.json ")"
    projekt = "karizmatični zbroj-202020"
    regija = "azija-jug1"

     
    resurs "random_id" "instance_id"
    duljina bajta = 8

     
    resurs "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    tip_mašine = "f1-mikro"
    zone = "azija-jug1-a"
     
    boot_disk
    initialize_params
    slika = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade;
    sudo apt-get -y instaliraj nginx "
     
    network_interface
    mreža = "zadana"
     
    access_config
     


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


     
    resurs "google_compute_firewall" "zadani"
    name = "nginx-firewall"
    mreža = "zadana"
     
    dopustiti
    protokol = "tcp"
    priključci = ["80", "443"]

     
    dopustiti
    protocol = "icmp"


     
    izlaz "ip"
    vrijednost = "$ google_compute_instance.nucuta.sučelje_ mreže.0.pristup_konfig.0.nat_ip "
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...
HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...
Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...