Terraform

Kā lietot Terraform ar Google Cloud Platform?

Kā lietot Terraform ar Google Cloud Platform?
Terraform ir rīks, ko izmanto, lai ērti pārvaldītu infrastruktūru kā kodus. To izstrādājis HashiCorp kā atvērtā koda projektu mākoņu izstrādātājiem, lai pārvaldītu savu infrastruktūru ļoti augsta līmeņa valodā (HCL). Lielākā šī rīka priekšrocība ir tā, ka tā iegūst galvenos infrastruktūras pakalpojumus, piemēram, AWS, OpenStack, Vultr, Digital Ocean, Google Cloud, un ļauj izstrādātājiem apvienot savu konfigurāciju vienā standarta formātā. Papildus tam automatizācija un detalizēta izpilde ir iespējama arī ar Terraform. Tas ir pieejams Windows, Linux, MacOS platformās, un to var izmantot ar visām lielākajām mākoņu platformām ar mērenu tehnisko zināšanu līmeni.

Šajā ceļvedī ir parādīts, kā lietot Terraform ar Google Cloud platformu. Šajā rokasgrāmatā tiek pieņemts, ka lietotājam ir konts Google Cloud platformā, un tas ir gatavs lietošanai, ja ne, tad gadu ir iespējams viegli izveidot bezmaksas izmēģinājuma kontu. Tomēr, lai piekļūtu konsolei, pakalpojumā Google Cloud ir jāiesniedz derīgs kredītkartes numurs; tāpēc pārliecinieties, ka tas tiek izskatīts, pirms turpināt darbu.

Prasības un nosacījumi

Google Cloud platforma sastāv no liela skaita pakalpojumu; tāpēc ir grūti tos visus aptvert vienā ceļvedī, un tāpēc šī rokasgrāmata attiecas tikai uz sadaļu Google VM instances. Tas parāda, kā instalēt Nginx tīmekļa serveri Ubuntu VM instancē Google Cloud infrastruktūrā.

Tā kā ceļvedis ir par terraformu, acīmredzot tas ir jāinstalē sistēmā. Turklāt, lai piekļūtu VM instancei, ir jāizveido SSH atslēga.

Kā instalēt Terraform Ubuntu

Terraform var uzstādīt divos dažādos veidos. Pirmā metode ir manuāls veids, kas prasa lietotājam to lejupielādēt un instalēt sistēmā, alternatīvais un ieteicamākais veids ir automatizēts veids, kas ar pāris koda rindiņām lejupielādē un instalē sistēmā terraformu. Izpildiet šīs komandas, lai tas notiktu.

  1. Instalējiet sistēmā unzip pakotni, lai pēc tam lejupielādētu pakotni terraform.
sudo apt-get install unzip
  1. Lejupielādējiet un instalējiet terraform no norādītās saites. Ņemiet vērā, ka brīdī, kad raksts tiek rakstīts, jaunākā terraform versija ir 0.11.10. Nākotnē versija var būt atšķirīga. Tāpēc vienmēr pievērsiet uzmanību viņu oficiālajai vietnei, lai iegūtu informāciju par jaunāko terraform paketi.
wget https: // izlaidumi.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.zip
  1. Izvelciet terra formu pašreiz aktīvajā direktorijā. Pēc noklusējuma tas ir mājas direktorijs Ubuntu.
unzip terraform_0.11.10_linux_amd64.zip
  1. Pārvietojiet terra formu uz bināro mapi. Terraform nav iestatīšanas faila; tāpēc tā binārais fails ir jāievieto atkritumu failā manuāli.
sudo mv terraform / usr / local / bin /
  1. Izmantojiet šo komandu, lai piekļūtu terraform no komandrindas, nenorādot tās direktoriju.
terraform --versija

Kā izveidot savu SSH atslēgu

Pēc terraform instalēšanas nākamais svarīgais solis ir sava SSH publiskā / privātā atslēgu pāra ģenerēšana, lai sazinātos ar VM instanci, kas tiks izveidota. SSH atslēgu pāris nodrošina spēcīgu drošību par tradicionālās paroles / lietotājvārda autentifikāciju; tāpēc ir ļoti ieteicams ievērot šo opciju, kaut arī tā nav obligāta.

1. Ubuntu čaulā ierakstiet šādu komandu, lai ģenerētu SSH atslēgu pāri.

ssh-keygen

2. Sākumā tā prasa atslēgu pāra nosaukumu, pēc tam ssh atslēgas ieejas frāzi. Publiskā atslēga tiek izveidota kā .krogs, turpretī privātā atslēga tiek izveidota kā . Abi taustiņi tiek izveidoti pašlaik aktīvajā direktorijā. Glabājiet privāto atslēgu drošā vietā, jo ir svarīgi piekļūt VM instancei.

Konfigurējiet Google Cloud ar Terraform

Kad iepriekš minētie divi segmenti ir pabeigti, turpiniet un izveidojiet bezmaksas izmēģinājuma kontu pakalpojumā Google Cloud. Tā kā konta izveide ir vienkāršs process, tas šeit nav aprakstīts. Kad esat piekļuvis Google Cloud konsolei, veiciet tālāk norādītās darbības, lai konfigurētu Google Cloud ar terraform.

  1. Pārejiet uz šo URL.
    https: // konsole.mākonis.google.com
  1. Noklikšķiniet uz pogas “Mani projekti” konsoles augšējā kreisajā stūrī.
  2. Izveidojiet jaunu ceļvedi vai izmantojiet esošu šo rokasgrāmatu. “Projekta” mērķis ir dažādu pakalpojumu grupēšana Google Cloud. Projekts ir šīs pakalpojumu hierarhijas augstākais mezgls, un pārējie pakalpojumi atrodas tajā. Pakalpojums, kas izveidots viena projekta ietvaros, nav pieejams no cita projekta. Kad projekts ir izveidots, kopējiet un glabājiet tā ID kaut kur drošā vietā. Šajā ekrānuzņēmumā projekta ID ir harizmātiska-summa-202020, un jūsu mākoņa konsolē tas var būt atšķirīgs. 
  3. Pārejiet uz šo tīmekļa vietni, lai lejupielādētu akreditācijas failu JSON formātā, lai autentificētu lietotāju, veidojot savienojumu ar Google mākoņa platformu. Šis ir administratora konts; tādējādi pārliecinieties, ka šis akreditācijas fails ir drošā vietā. https: // konsole.mākonis.google.com / apis / credentials / serviceaccountkey 
  4. Izveidojiet failu un pārdēvējiet to par galveno.tf. Šis fails ir terraform konfigurācijas fails, pēc tam kā pirmās koda rindas izmantojiet šo kodu bloku. Pakalpojuma sniedzēja nosaukums ir norādīts, lai pakalpojumu sniedzējs varētu sazināties. Terraform atbalsta lielu skaitu mākoņu platformu; tāpēc ir skaidri jānorāda mākoņa platformas nosaukums. Šeit tas ir Google, kas nozīmē, ka tas izveido savienojumu ar Google mākoņa platformu. Bez virsraksta blokā ir 3 atribūti, atribūts “credentials” ir paredzēts, lai norādītu iepriekš lejupielādētā akreditācijas faila nosaukumu, projekta nosaukums ir vieta google mākonī, kur tiek izveidota VM instance. Šeit kā projekta nosaukums tiek izmantots 3. darbībā izveidotais ID. Reģions ir ģeogrāfiskā atrašanās vieta, kur tiek izveidota VM instance. Ir vairāki reģioni. Izmantojiet šo saiti, lai norādītu uz visiem pieejamajiem reģioniem. https: // mākonis.google.com / appengine / docs / atrašanās vietu nodrošinātājs "google"
    akreditācijas dati = "$ fails (" CREDENTIALS_FILE.json ")"
    project = "PROJECT_NAME"
    reģions = "REGION_NAME"

  1. Izmantojiet šo komandu, lai instalētu terraform spraudņus. Šī komanda automātiski skenē terraform konfigurācijas failu un identificē instalējamos spraudņus, kā arī lejupielādē terraform sniedzēja informāciju. Šajā ceļvedī tiek izmantota Google Cloud platforma; tādējādi tā lejupielādē Google mākoņa terraform sniedzēja informāciju. Komanda identificē pakalpojumu sniedzēju no nosaukuma, kas terraform config failā norādīts atslēgvārdā “Provider”. terraform init
  1. Izmantojiet šādus divus kodu blokus, lai definētu vairāk informācijas par VM instanci. Sākotnēji tas izmanto izlases id spraudni, lai ģenerētu nejaušu skaitli ar 8 cipariem, pēc tam piešķir šo numuru mainīgajam instance_id, lai to izmantotu kā prefiksu VM instances nosaukumam. Otrajā kodu blokā tas izveido VM instanci ar nosaukumu “nucuta-vm-. Iekārtas tips ir servera pakete, kuru izmanto VM instances mitināšanai. Lai atrastu pieejamos mašīnu veidus, skatiet šo tīmekļa vietrādi URL. https: // mākonis.google.com / compute / docs / machine-types. Zona ir precīza reģiona atrašanās vieta. Katrā reģionā galvenokārt ir pieejamas 3 zonas, a, b, c. Katrai zonai ir sava aparatūras / programmatūras konfigurācija. Izmantojiet šo tīmekļa vietni, lai norādītu uz visām pieejamajām zonām un to aparatūras konfigurāciju. https: // mākonis.google.com / compute / docs / regioni-zonas / resurss "random_id" "instance_id"
    baita_ garums = 8

    resurss "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-mikro"
    zona = "asia-south1-a"
  1. Izmantojiet šo kodu bloku “google_compute_instance” koda blokā. Tas norāda izmantojamo operētājsistēmu. Izmantojiet šo tīmekļa vietni, lai atrastu visas pieejamās Google mākoņa platformas operētājsistēmas. https: // mākonis.google.com / compute / docs / images. Tajā teikts attēls, jo operētājsistēmas tiek glabātas kā “attēlu” faili. Veicot terraform config faila izpildi, attēla fails tiek izvilkts un tā operētājsistēma tiek instalēta VM instancē tāpat kā parastā datorā. Attēla atribūts ir šajā formātā, attēlu projekts / attēlu saime. boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Izmantojiet šo kodu “google_compute_instance” kodu blokā. Tas norāda sākuma skriptu, lai palaistu jaunizveidotajā VM instancē. Šis skripts tiek izpildīts, tiklīdz ir izveidota VM instance. Šajā piemērā tas atjaunina vietējās pakotnes informācijas krātuvi ar jaunāko informāciju, pēc tam atjaunina visus pakotnes ar dist-upgrade, pēc tam instalē paketi nginx. Noteikti izmantojiet -y karodziņu, lai process nebūtu interaktīvs, tas nozīmē, ka tas automātiski izpilda un izpilda procesu, neprasot lietotāja iejaukšanos. metadata_startup_script = "sudo apt-get -y atjauninājums;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y instalēt nginx "
  1. Izmantojiet šo kodu bloku “google_compute_instance” kodu blokā. Šis kodu bloks norāda tīkla saskarni, kas tiek izmantota, lai savienotu pašreizējo VM instanci ar citām VM instancēm, ierīcēm un tīkliem. Bloks Access_config tiek izmantots, lai piešķirtu VM instancei ārēju IP adresi, lai tai piekļūtu no interneta. network_interface
    network = "noklusējums"
    access_config

  1. Visbeidzot, izmantojiet šo kodu bloku “google_compute_instance” kodu blokā. Tas norāda lietotājvārdu un publisko SSH atslēgu. Pārliecinieties, vai ģenerētā publiskā SSH atslēga atrodas tajā pašā mapē, kur terraform konfigurācijas fails. Lietotājvārdam jābūt tā konta nosaukumam, no kura tika izveidota SSH atslēga, piemēram, ja konta nosaukums ir root, tad tā lietotājvārds ir root. metadati
    sshKeys = "dilanga: $ file (" dilanga.krogs ")"

  1. Galīgajam koda blokam vajadzētu izskatīties šādi 
  2. Izmantojiet šo kodu bloku ārā no “google_compute_instance” koda bloka. Pēc noklusējuma VM instance bloķē visu ienākošo un izejošo datplūsmu. Tā kā šī rokasgrāmata izveido tīmekļa serveri, ir jāatver 80. un 443. ports, lai lietotāji varētu tam piekļūt, izmantojot internetu. No sākuma nosaukuma atribūts izveido profilu google skaitļošanas ugunsmūrī šim noteikumam, tīkla atribūts norāda, uz kuru tīkla saskarni attiecas kārtula, ļauj bloķēt atļauj tajā norādītos protokolus un tā porti. Icmp protokols tiek izmantots tīmekļa servera pingēšanai, lai pārliecinātos, ka tas ir pieejams sabiedrībai. Pingings bieži tiek izmantots daudzos dienestos, lai uzzinātu tīmekļa vietnes pieejamību. resurss "google_compute_firewall" "noklusējums"
    name = "nginx-firewall"
    network = "noklusējums"
     
    Atļaut
    protokols = "TCP"
    porti = ["80", "443"]

     
    Atļaut
    protokols = "icmp"

  3. Izmantojiet šo kodu bloku ārā no “google_compute_instance”, lai izdrukātu pašreizējās VM instances publisko IP adresi. izvade "ip"
    value = "$ google_compute_instance.nucuta.tīkla interfeiss.0.piekļuves_konfig.0.nat_ip "
  4. Izmantojiet šo komandu, lai pārbaudītu konfigurācijas failu un akreditācijas failu. Tas arī priekšskatīs, kā izskatās gala rezultāts, tiklīdz konfigurācijas fails ir izpildīts. terraform plāns
  5. pēc tam izmantojiet šo komandu, lai izpildītu konfigurācijas failu. piemērot terraformu
  6. Tagad, lai piekļūtu VM instances tīmekļa serverim, izmantojiet publisko IP adresi jebkurā tīmekļa pārlūkprogrammā.
  7. Izmantojiet šo komandu, lai piekļūtu VM instancei, izmantojot SSH, lai pārvaldītu serveri. Pārliecinieties, vai privātā atslēga atrodas pašreizējā direktorijā, vai norādiet ceļu uz privāto atslēgu.
  8. ssh -i @

    Secinājums

    Ar to vajadzētu pietikt, lai jūs varētu sākt.  Pilns konfigurācijas fails, galvenais.tf, ir parādīts zemāk. Izceltos tekstus var mainīt atbilstoši lietotāja prasībām.

    pakalpojumu sniedzējs "google"
    akreditācijas dati = "$ file (" dilannga_credentials.json ")"
    project = "harizmātiska-summa-202020"
    reģions = "asia-south1"

     
    resurss "random_id" "instance_id"
    baita_ garums = 8

     
    resurss "google_compute_instance" "nucuta"
    name = "nucuta-vm - $ random_id.instance_id.hex "
    machine_type = "f1-mikro"
    zona = "asia-south1-a"
     
    boot_disk
    initialize_params
    image = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y atjauninājums; sudo apt-get -y dist-upgrade;
    sudo apt-get -y instalēt nginx "
     
    network_interface
    network = "noklusējums"
     
    access_config
     


     
    metadati
    sshKeys = "dilanga: $ file (" dilanga.krogs ")"


     
    resurss "google_compute_firewall" "noklusējums"
    name = "nginx-firewall"
    network = "noklusējums"
     
    Atļaut
    protokols = "TCP"
    porti = ["80", "443"]

     
    Atļaut
    protokols = "icmp"


     
    izvade "ip"
    value = "$ google_compute_instance.nucuta.tīkla interfeiss.0.piekļuves_konfig.0.nat_ip "
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...
Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...