„Terraform“

Kaip naudoti „Terraform“ su „Google Cloud Platform“?

Kaip naudoti „Terraform“ su „Google Cloud Platform“?
„Terraform“ yra įrankis, naudojamas lengvai valdyti infrastruktūrą kaip kodus. Tai sukūrė „HashiCorp“ kaip atvirojo šaltinio projektą, skirtą debesų programuotojams valdyti savo infrastruktūrą labai aukšto lygio kalba (HCL). Didžiausias šio įrankio privalumas yra tai, kad jis išskiria pagrindines infrastruktūros paslaugas, tokias kaip AWS, „OpenStack“, „Vultr“, „Digital Ocean“, „Google Cloud“, ir leidžia kūrėjams suvienodinti savo konfigūraciją vienu standartiniu formatu. Be to, automatizavimas ir išsamus vykdymas taip pat galimas naudojant „Terraform“. Jis prieinamas „Windows“, „Linux“, „MacOS“ platformose ir gali būti naudojamas su visomis pagrindinėmis debesų platformomis, turinčiomis vidutinio lygio techninių žinių.

Šis vadovas parodo, kaip naudoti „Terraform“ su „Google Cloud“ platforma. Šiame vadove daroma prielaida, kad vartotojas turi „Google Cloud“ platformos paskyrą ir yra paruoštas naudoti, jei ne, tai galima lengvai sukurti nemokamą bandomąją paskyrą per metus. Tačiau norint pasiekti konsolę „Google Cloud“ reikia pateikti galiojantį kreditinės kortelės numerį; taigi, prieš tęsdami, įsitikinkite, kad jis yra išspręstas.

Reikalavimai ir sąlygos

„Google Cloud“ platformą sudaro daugybė paslaugų; todėl sunku juos visus apimti viename vadove, todėl šis vadovas apima tik „Google“ VM egzempliorių skyrių. Tai parodo, kaip įdiegti „Nginx“ žiniatinklio serverį „Ubuntu“ VM egzemplioriuje „Google Cloud“ infrastruktūroje.

Kadangi vadovas yra apie terraformą, akivaizdu, kad jis turi būti įdiegtas sistemoje. Be to, norint pasiekti VM egzempliorių, reikia sugeneruoti SSH raktą.

Kaip įdiegti „Terraform“ į „Ubuntu“

„Terraform“ galima montuoti dviem skirtingais būdais. Pirmasis metodas yra rankinis būdas, reikalaujantis, kad vartotojas jį atsisiųstų ir įdiegtų sistemoje, alternatyvus ir labiausiai rekomenduojamas būdas yra automatizuotas būdas, kuris atsisiunčia ir įdiegia sistemoje „terraform“ su pora kodo eilučių. Vykdykite šias komandas, kad tai įvyktų.

  1. Įdiekite išpakavimo paketą sistemoje, kad išgautumėte „terraform“ paketą, kai tik jis bus atsisiųstas.
sudo apt-get install išpakuokite
  1. Atsisiųskite ir įdiekite „terraform“ iš nurodytos nuorodos. Atminkite, kad tuo metu, kai straipsnis rašomas, naujausia „terraform“ versija yra 0.11.10. Ateityje versija gali būti kitokia. Taigi visada atkreipkite dėmesį į jų oficialią svetainę, kad gautumėte informacijos apie naujausią „terraform“ paketą.
wget https: // išleidžia.hashicorp.„com / terraform / 0“.11.10 / terraform_0.11.10_linux_amd64.užtrauktukas
  1. Ištraukite teritorijos formą į šiuo metu aktyvų katalogą. Pagal numatytuosius nustatymus tai yra „Ubuntu“ pagrindinis puslapis.
atsegti „terraform_0“.11.10_linux_amd64.užtrauktukas
  1. Perkelkite „terraform“ į dvejetainį aplanką. „Terraform“ neturi sąrankos failo; todėl jo dvejetainis failas turi būti dedamas į šiukšliadėžės failą rankiniu būdu.
sudo mv terraform / usr / local / bin /
  1. Norėdami pasiekti „terraform“ iš komandinės eilutės nenurodydami jos katalogo, naudokite šią komandą.
terraform --versija

Kaip sukurti savo SSH raktą

Įdiegus „terraform“, kitas svarbus žingsnis yra sukurti savo SSH viešojo / privataus rakto porą, kad galėtumėte bendrauti su netrukus kuriama VM egzemplioriumi. SSH raktų pora suteikia tvirtą apsaugą tradiciniam slaptažodžio / vartotojo vardo autentifikavimui; todėl griežtai rekomenduojama laikytis šios parinkties, net jei tai nėra privaloma.

1. „Ubuntu“ apvalkale įveskite šią komandą, kad sugeneruotumėte SSH raktų porą.

ssh-keygen

2. Pradžioje ji klausia raktų poros pavadinimo, tada - ssh rakto slaptafrazės. Viešasis raktas sukurtas kaip .pub, o privatus raktas sukurtas kaip . Abu raktai yra sukurti šiuo metu aktyviame kataloge. Saugokite privatų raktą saugioje vietoje, nes svarbu pasiekti VM egzempliorių.

Konfigūruokite „Google Cloud“ naudodami „Terraform“

Užbaigus minėtus du segmentus, sukurkite nemokamą bandomąją paskyrą „Google Cloud“. Kadangi paskyros sukūrimas yra paprastas procesas, jis čia nėra aprašytas. Gavę prieigą prie „Google Cloud“ konsolės, atlikite šiuos veiksmus, kad sukonfigūruotumėte „Google Cloud“ su „terraform“.

  1. Eikite į šį URL.
    https: // konsolė.debesis.google.com
  1. Viršutiniame kairiajame konsolės kampe spustelėkite mygtuką „Mano projektai“.
  2. Šiame vadove sukurkite naują projektą arba naudokite esamą. „Projekto“ tikslas yra grupuoti įvairias paslaugas „Google Cloud“. Projektas yra aukščiausias šios paslaugų hierarchijos mazgas, o po juo eina likusios paslaugos. Pagal vieną projektą sukurta paslauga negali būti pasiekiama iš kito projekto. Kai projektas bus sukurtas, nukopijuokite ir laikykite jo ID kur nors saugioje vietoje. Šioje ekrano kopijoje projekto ID yra charizmatiška-suma-202020, ir jūsų debesies konsolėje jis gali būti kitoks. 
  3. Eikite į šį žiniatinklio URL, kad atsisiųstumėte JSON formato kredencialų failą, kad autentifikuotumėte vartotoją prisijungdami prie „Google“ debesies platformos. Tai yra administratoriaus paskyra; taigi įsitikinkite, kad šis kredencialų failas yra saugus saugioje vietoje. https: // konsolė.debesis.google.com / apis / credentials / serviceaccountkey 
  4. Sukurkite failą ir pervadinkite jį kaip pagrindinį.tf. Šis failas yra „terraform“ konfigūracijos failas, tada kaip pirmąsias kodo eilutes naudokite šį kodo bloką. Teikėjo pavadinimas nurodo paslaugų teikėją, su kuriuo reikia susisiekti. „Terraform“ palaiko daugybę debesų platformų; todėl debesų platformos pavadinimas turi būti aiškiai nurodytas. Čia tai „Google“, o tai reiškia, kad jis jungiasi su „Google“ debesies platforma. Be antraštės, bloke yra 3 atributai, atributas „credentials“ skirtas nurodyti atsisiunčiamą kredencialų failo pavadinimą, projekto pavadinimas yra vieta „Google“ debesyje, kur sukurtas VM egzempliorius. 3 veiksme sukurtas ID čia naudojamas kaip projekto pavadinimas. Regionas yra geografinė vieta, kur sukurtas VM egzempliorius. Yra keli regionai. Naudokite šią nuorodą, jei norite nurodyti visus galimus regionus. https: // debesis.google.com / appengine / docs / buveinių teikėjas „google“
    kredencialai = "$ failas (" CREDENTIALS_FILE.json ")"
    project = "PROJECT_NAME"
    regionas = "REGION_NAME"

  1. Norėdami įdiegti „terraform“ papildinius, naudokite šią komandą. Ši komanda automatiškai nuskaito „terraform“ konfigūracijos failą ir nustato, kuriuos papildinius reikia įdiegti, be to, ji taip pat atsisiunčia „terraform“ teikėjo informaciją. Šiame vadove naudojama „Google Cloud“ platforma; todėl atsisiųsta „Google“ debesies „terraform“ teikėjo informaciją. Komanda identifikuoja tiekėją iš pavadinimo, nurodyto „terraform“ konfigūracijos faile esančiame raktiniame žodyje. terraform init
  1. Norėdami apibrėžti daugiau informacijos apie VM egzempliorių, naudokite šiuos du kodų blokus. Nuo pat pradžių jis naudoja atsitiktinio ID įskiepį, kad sugeneruotų atsitiktinį skaičių su 8 skaitmenimis, tada priskiria tą skaičių kintamajam instancija, kad būtų naudojamas kaip VM egzemplioriaus vardo priešdėlis. Antrame kodo bloke sukuriamas VM egzempliorius pavadinimu „nucuta-vm-. Mašinos tipas yra serverio paketas, naudojamas VM egzemplioriui priglobti. Norėdami rasti galimus mašinų tipus, žr. Šį žiniatinklio URL. https: // debesis.google.com / compute / docs / machine-types. Zona yra tiksli regiono vieta. Kiekviename regione daugiausia yra 3 zonos, a, b, c. Kiekviena zona turi savo aparatinės ir programinės įrangos konfigūraciją. Naudokite šį žiniatinklio URL, jei norite nurodyti visas galimas zonas ir jų aparatinės įrangos konfigūraciją. https: // debesis.google.com / compute / docs / regionai-zonos / šaltinis "random_id" "instance_id"
    baitų ilgis = 8

    šaltinis "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-mikro"
    zona = "azija-pietai1-a"
  1. Kodo bloke „google_compute_instance“ naudokite šį kodo bloką. Jame nurodoma naudojama operacinė sistema. Naudokite šį žiniatinklio URL norėdami rasti visas galimas „Google“ debesies platformos operacines sistemas. https: // debesis.google.com / compute / docs / images. Jis sako „image“, nes operacinės sistemos saugomos kaip „image“ failai. Vykdant „terraform“ konfigūracijos failą, vaizdo failas išgaunamas ir jo operacinė sistema įdiegiama VM egzemplioriuje, kaip ir įprastame kompiuteryje. Vaizdo atributas yra šio formato, įvaizdžio projektas / įvaizdžio šeima. boot_disk
    initize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. „Google_compute_instance“ kodų bloke naudokite šį kodą. Jis nurodo paleisties scenarijų, skirtą paleisti naujai sukurtoje VM instancijoje. Šis scenarijus vykdomas iškart, kai sukuriamas VM egzempliorius. Šiame pavyzdyje jis atnaujina vietinių paketų informacijos saugyklą naujausia informacija, tada atnaujina visus paketus su dist-upgrade, tada įdiegia „nginx“ paketą. Įsitikinkite, kad pažymėjote -y, kad procesas būtų neinteraktyvus, ty jis automatiškai vykdo ir vykdo procesą nereikalaudamas vartotojo įsikišimo. metadata_startup_script = "sudo apt-get -y atnaujinimas;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y įdiekite nginx "
  1. „Google_compute_instance“ kodų bloke naudokite šį kodo bloką. Šiame kodo bloke nurodoma tinklo sąsaja, naudojama dabartiniam VM egzemplioriui sujungti su kitomis VM egzemplioriais, įrenginiais ir tinklais. „Access_config“ blokas naudojamas VM egzemplioriui priskirti išorinį IP adresą, norint jį pasiekti iš interneto. tinklo_interface
    tinklas = "numatytasis"
    access_config

  1. Galiausiai naudokite šį kodo bloką „google_compute_instance“ kodo bloke. Jame nurodomas vartotojo vardas ir viešasis SSH raktas. Įsitikinkite, kad sugeneruotas viešasis SSH raktas yra tame pačiame aplanke kaip ir „terraform“ konfigūracijos failas. Vartotojo vardas turėtų būti paskyros, iš kurios buvo sukurtas SSH raktas, pavadinimas, pavyzdžiui, jei paskyros vardas yra root, tada jos vartotojo vardas yra root. metaduomenys
    sshKeys = "dilanga: $ file (" dilanga.baras ")"

  1. Galutinis kodo blokas turėtų atrodyti taip 
  2. Naudokite šį kodo bloką lauke „google_compute_instance“ kodo bloko. Pagal numatytuosius nustatymus VM egzempliorius blokuoja visą gaunamą ir išeinantį srautą. Kadangi šiame vadove sukuriamas žiniatinklio serveris, reikia atidaryti 80 ir 443 prievadus, kad vartotojai galėtų juo naudotis internetu. Nuo pat pradžių vardo atributas sukuria šios taisyklės profilį „Google“ skaičiavimo užkardoje, tinklo atributas nurodo, kuriai tinklo sąsajai taikoma taisyklė, leisti blokuoti leidžia protokolus ir jo prievadus, nurodytus joje. „Icmp“ protokolas naudojamas žiniatinklio serverio pingui patikrinti, ar jis prieinamas viešai. Daugelis tarnybų dažnai naudoja „Pinging“, norėdami sužinoti apie interneto svetainės prieinamumą. resursas "google_compute_firewall" "numatytasis"
    name = "nginx-firewall"
    tinklas = "numatytasis"
     
    leisti
    protokolas = "TCP"
    prievadai = ["80", "443"]

     
    leisti
    protokolas = "icmp"

  3. Naudokite šį kodo bloką lauke „google_compute_instance“, kad atspausdintumėte dabartinį VM egzemplioriaus viešąjį IP adresą. išvestis „ip“
    value = "$ google_compute_instance.nucuta.tinklo sąsaja.0.access_config.0.nat_ip "
  4. Norėdami patikrinti konfigūracijos failą ir kredencialų failą, naudokite šią komandą. Ji taip pat peržiūri, kaip atrodo galutinis rezultatas, kai bus įvykdytas konfigūracijos failas. „terraform“ planas
  5. tada naudokite šią komandą, kad įvykdytumėte konfigūracijos failą. taikoma terraform
  6. Dabar naudokite viešąjį IP adresą bet kurioje žiniatinklio naršyklėje, kad pasiektumėte VM egzemplioriaus žiniatinklio serverį.
  7. Naudokite šią komandą, kad pasiektumėte VM egzempliorių per SSH, kad galėtumėte tvarkyti serverį. Įsitikinkite, kad privatus raktas yra dabartiniame kataloge, arba nurodykite kelią į privatų raktą.
  8. ssh -i @

    Išvada

    To turėtų pakakti, kad galėtumėte pradėti.  Visas konfigūracijos failas, pagrindinis.tf, yra parodyta žemiau. Paryškintus tekstus galima keisti atsižvelgiant į vartotojo reikalavimus.

    teikėjas „google“
    įgaliojimai = "$ file (" dilannga_credentials.json ")"
    project = "charizmatiška-suma-202020"
    regionas = "azija-pietūs1"

     
    šaltinis "random_id" "instance_id"
    baitų ilgis = 8

     
    šaltinis "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex
    machine_type = "f1-mikro"
    zona = "azija-pietai1-a"
     
    boot_disk
    initize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y atnaujinimas; sudo apt-get -y dist-upgrade;
    sudo apt-get -y įdiekite nginx "
     
    tinklo_interface
    tinklas = "numatytasis"
     
    access_config
     


     
    metaduomenys
    sshKeys = "dilanga: $ file (" dilanga.baras ")"


     
    resursas "google_compute_firewall" "numatytasis"
    name = "nginx-firewall"
    tinklas = "numatytasis"
     
    leisti
    protokolas = "TCP"
    prievadai = ["80", "443"]

     
    leisti
    protokolas = "icmp"


     
    išvestis „ip“
    value = "$ google_compute_instance.nucuta.tinklo sąsaja.0.access_config.0.nat_ip "
5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...