Šajā rakstā ir apskatīts, kā izmantot un konfigurēt dažādus pakalpojumu sniedzējus, lai mijiedarbotos ar dažādām mākoņa platformām un pakalpojumiem.
Ievads Terraform Providers
Terraform nodrošinātāji ir spraudņi, kas ļauj mums mijiedarboties ar dažādām mākoņa platformām un pakalpojumiem, izmantojot Terraform. Šie pakalpojumu sniedzēji ir atbildīgi par Terraform konfigurācijas pārveidošanu API izsaukumos, kas ir nepieciešami, lai pārvaldītu resursus noteiktā mākoņa platformā vai pakalpojumā.
Pakalpojumu sniedzēju veidi Terraformā
Iekš Terraformu reģistrs , mēs varam redzēt trīs veidu pakalpojumu sniedzējus:
Oficiālie pakalpojumu sniedzēji
Oficiālos pakalpojumu sniedzējus uztur uzņēmums HashiCorp, kam pieder Terraform. Šie pakalpojumu sniedzēji ir labākā pieejamā iespēja, ja mums ir nepieciešami labi dokumentēti un atjaunināti pakalpojumu sniedzēji.
AWS, Microsoft Azure un Google Cloud Platform nodrošinātāji var būt oficiālo pakalpojumu sniedzēju piemēri pakalpojumā Terraform.
Partneru nodrošinātāji
Trešo pušu organizācijas uztur šos pakalpojumu sniedzējus un sadarbojas ar HashiCorp, lai sniegtu oficiālu atbalstu saviem pakalpojumiem.
GitLab, MongoDB un CloudFlare pakalpojumu sniedzēji ir daži partneru nodrošinātāji, kas ir pieejami lietotājiem.
Kopienas pakalpojumu sniedzēji
Kopienas pakalpojumu sniedzējus parasti izveido Terraform kopienas personas vai organizācijas, kuras vēlas pārvaldīt resursus mākoņa platformā vai pakalpojumā, ko neatbalsta oficiālais vai partneru nodrošinātājs.
Daži kopienas pakalpojumu sniedzēju piemēri ir parādīti šajā attēlā:
Kā lietot Terraform Provider
Lai izmantotu Terraform nodrošinātāju, mūsu konfigurācijas failā ir jāiekļauj nodrošinātāja bloks, kas norāda pakalpojumu sniedzēju, kuru vēlamies izmantot, un visus nepieciešamos konfigurācijas parametrus, piemēram, akreditācijas datus vai reģionu.
Kad pakalpojumu sniedzējs ir konfigurēts, mēs varam izmantot resursus un datu avotus, ko nodrošinātājs nodrošina mūsu Terraform konfigurācijā, lai pārvaldītu resursus mākoņa platformā vai pakalpojumā.
Izveidosim vienkāršu Terraform konfigurācijas failu, kas izveido EC2 gadījumu AWS mākoņa platformā.
pakalpojumu sniedzējs 'aws' {versija = '~> 3,0'
reģions = 'us-east-2'
}
resursu 'aws_instance' 'myEC2' {
kas = 'ami-0a561b65214a47cac'
instance_type = 't3. mazs'
tagi = {
Vārds = 'jaunā instance'
}
}
Pirmkārt, mēs definējam nodrošinātāja bloku, norādot AWS nodrošinātāju un reģionu, kurā tiek izveidoti resursi. Pēc tam mēs definējam mūsu resursu bloku, kas sastāv no aws_instance kā resursa veida, “myEC2” kā resursa nosaukuma un “ami”, “instance_type” un “tags” kā atribūtiem. Resursa veidu var iedalīt divās daļās: nodrošinātājs un resurss. Šajā gadījumā “aws” ir nodrošinātājs, un “instance” ir resurss. Turklāt, ja kādam ir jānodrošina desmit EC2 gadījumi, atribūtu “count” var izmantot ar desmit kā vērtību.
Tagad mēs varam veikt Terraform plūsmu, kas ietver terraformas init izpildi, terraform plāna un terraform lietotās komandas, lai izveidotu mūsu definēto resursu.
Izmantojot Terraform AWS nodrošinātāju, mēs varam piekļūt AWS mākoņa platformai un efektīvi mijiedarboties ar tās pakalpojumiem, neizmantojot AWS pārvaldības konsoli.
Vairāku pakalpojumu sniedzēju izmantošana Terraformā
Tā vietā, lai izmantotu vienu pakalpojumu sniedzēju, Terraform ļauj mums vienā Terraform konfigurācijas failā izmantot vairākus pakalpojumu sniedzējus, lai mijiedarbotos ar dažāda veida pakalpojumiem un mākoņa platformām.
Jūsu izpratnei piedāvāsim piemēru, kurā mēs izvietojam skaitļošanas programmu Google mākoņa platformā, krātuvi GitHub un S3 segmentu AWS mākoņa platformā.
pakalpojumu sniedzējs 'google' {projekts = 'pirmais projekts'
reģions = 'us-rietumi1'
}
pakalpojumu sniedzējs 'github' {
marķieris = 'YOUR_GITHUB_TOKEN'
}
pakalpojumu sniedzējs 'aws' {
versija = '~> 3,0'
reģions = 'us-rietumi-2'
}
resurss 'google_compute_instance' 'gcpInstance' {
vārds = 'jaunā instance'
mašīnas_tips = 'n1-standarta-1'
zona = 'us-west1-a'
boot_disk {
inicializēt_parametri {
attēls = 'debian-cloud/debian-10'
}
}
}
resurss 'github_repository' 'gitRepo' {
vārds = 'jaunais repo'
apraksts = 'Šī ir mana jaunā krātuve'
}
resurss 'aws_s3_bucket' 'awsBucket' {
spainis = 'jauns spainis'
acl = 'Privāts'
}
Vispirms mēs definējam pakalpojumu sniedzēju blokus, lai norādītu pakalpojumu sniedzējus (Google, GitHub un AWS) un nepieciešamo informāciju, piemēram, reģionu, projekta nosaukumu utt. Pēc tam mēs deklarējam savus resursus, izmantojot trīs resursu blokus: “gcpInstance”, “ gitRepo” un “awsBucket”.
Pirmkārt, Google mākoņa platformā mēs izveidojam skaitļošanas programmu, kuras nosaukums ir “new-stance”, mašīnas veids ir “n1-standard-1” un pieejamības zona “us-west1-a”. Tas izmanto Debian kā resursdatora OS. Pēc tam mēs izveidojam GitHub repozitoriju ar nosaukumu “new-repo” un piemērotu aprakstu. Visbeidzot, tiek izveidots S3 segments ar nosaukumu “new-bucket” un “privāts” kā ACL (piekļuves kontroles saraksta) vērtību.
Izmantojot šos trīs Terraform pakalpojumu sniedzējus, mēs varam viegli mijiedarboties ar mākoņa platformām un to pakalpojumiem.
Paraugprakse darbam ar Terraform pakalpojumu sniedzējiem
Pakalpojumu sniedzēja versiju noteikšana
Mums ir jānorāda nodrošinātāja versija, jo tā palīdz nodrošināt konsekvenci un novērš negaidītas darbības, ko izraisa jaunākās versijās veiktās izmaiņas.
Pakalpojumu sniedzēja autentifikācija
Mēs varam izmantot drošus autentifikācijas mehānismus, piemēram, API atslēgas un piekļuves marķierus, lai autentificētu un pilnvarotu Terraform mijiedarboties ar attiecīgo mākoņa platformu vai pakalpojumu.
Pakalpojumu sniedzēja dokumentācija
Pakalpojumu sniedzējiem bieži ir noteiktas konfigurācijas opcijas, līdzekļi un ierobežojumi. Izpratne par šo apmācību palīdz mums efektīvi izmantot pakalpojumu sniedzēju un izvairīties no bieži sastopamām kļūmēm.
Pakalpojumu sniedzēja atjauninājumi
Pakalpojumu sniedzēji var izlaist kļūdu labojumus, veiktspējas uzlabojumus un jaunas funkcijas. Atjaunināšana ļauj mums izmantot jaunākos uzlabojumus un uzturēt saderību ar pakalpojumu sniedzēja ekosistēmu.
Kopienas atbalsts
Mēs varam izmantot tiešsaistes forumus, diskusiju dēļus un kopienas kanālus, lai atrisinātu ikdienas problēmas, kas rodas, izmantojot pakalpojumu sniedzējus.
Kļūdu apstrāde un traucējummeklēšana
Laba prakse ir iepazīties ar pakalpojumu sniedzēja kļūdu ziņojumiem, žurnāliem un atkļūdošanas metodēm, lai tas palīdzētu mums efektīvāk diagnosticēt un atrisināt problēmas.
Secinājums
Mēs īsi iepazīstinājām ar Terraform nodrošinātājiem. Mēs apspriedām, kā tos izmantot un konfigurēt, lai mijiedarbotos ar dažādām mākoņa platformām un pakalpojumiem, un kā izmantot vairākus pakalpojumu sniedzējus, lai pārvaldītu resursus dažādās mākoņa platformās un pakalpojumos, izmantojot viegli saprotamus piemērus.