Š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.
- Instalējiet sistēmā unzip pakotni, lai pēc tam lejupielādētu pakotni terraform.
- 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.
- Izvelciet terra formu pašreiz aktīvajā direktorijā. Pēc noklusējuma tas ir mājas direktorijs Ubuntu.
- 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.
- Izmantojiet šo komandu, lai piekļūtu terraform no komandrindas, nenorādot tās direktoriju.
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ā
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.
- Pārejiet uz šo URL.
https: // konsole.mākonis.google.com
- Noklikšķiniet uz pogas “Mani projekti” konsoles augšējā kreisajā stūrī.
- 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.
- 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
- 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"
- 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
- 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"
- 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"
- 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 "
- 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
- 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 ")"
- Galīgajam koda blokam vajadzētu izskatīties šādi
- 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"
- 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 "
- 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
- pēc tam izmantojiet šo komandu, lai izpildītu konfigurācijas failu. piemērot terraformu
- Tagad, lai piekļūtu VM instances tīmekļa serverim, izmantojiet publisko IP adresi jebkurā tīmekļa pārlūkprogrammā.
- 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.
- 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 "