Mga Provider ng Terraform

Mga Provider Ng Terraform



Isa sa mga sikat at open-source na Infrastructure as a Code tools ay ang Terraform. Nagbibigay-daan ito sa mga developer na tukuyin at pamahalaan ang iyong imprastraktura nang deklaratibo. Nagbibigay-daan ito sa kanila na lumikha, pamahalaan, at baguhin ang mga mapagkukunan ng imprastraktura gamit ang isang simple at pare-parehong syntax, anuman ang pinagbabatayan ng cloud platform o service provider.

Tinatalakay ng artikulong ito kung paano gamitin at i-configure ang iba't ibang provider para makipag-ugnayan sa iba't ibang cloud platform at serbisyo.

Panimula sa Mga Provider ng Terraform

Ang mga provider ng Terraform ay mga plugin na nagbibigay-daan sa amin na makipag-ugnayan sa iba't ibang cloud platform at serbisyo gamit ang Terraform. Responsable ang mga provider na ito sa pagsasalin ng configuration ng Terraform sa mga API call na kinakailangan upang pamahalaan ang mga mapagkukunan sa isang partikular na cloud platform o serbisyo.







Mga Uri ng Provider sa Terraform

Nasa Terraform registry , makikita natin ang tatlong uri ng mga provider:



Mga Opisyal na Provider

Ang mga opisyal na provider ay pinananatili ng kumpanya ng HashiCorp na nagmamay-ari ng Terraform. Ang mga provider na ito ay ang pinakamahusay na magagamit na opsyon kung kailangan namin ang mga well-documented at up-to-date na mga provider.



Ang mga provider ng AWS, Microsoft Azure, at Google Cloud Platform ay maaaring maging mga halimbawa ng mga opisyal na provider sa Terraform.





Mga Kasosyong Provider

Pinapanatili ng mga third-party na organisasyon ang mga provider na ito at nakipagsosyo sa HashiCorp para magbigay ng opisyal na suporta para sa kanilang mga serbisyo.

Ang GitLab, MongoDB, at CloudFlare provider ay ilang partner provider na available para sa mga user.



Mga Tagapagbigay ng Komunidad

Ang mga provider ng komunidad ay karaniwang ginagawa ng mga indibidwal o organisasyon ng komunidad ng Terraform na gustong pamahalaan ang mga mapagkukunan sa isang cloud platform o serbisyo na hindi sinusuportahan ng isang opisyal o partner na provider.

Ang ilang mga halimbawa ng mga tagapagbigay ng komunidad ay ipinapakita sa sumusunod na larawan:

Paano Gumamit ng Provider ng Terraform

Upang gumamit ng provider ng Terraform, kailangan naming magsama ng block ng provider sa aming configuration file na tumutukoy sa provider na gusto naming gamitin at anumang kinakailangang parameter ng configuration gaya ng mga kredensyal o rehiyon.

Kapag na-configure na ang provider, magagamit namin ang mga mapagkukunan at data source na ibinibigay ng provider sa aming configuration ng Terraform upang pamahalaan ang mga mapagkukunan sa cloud platform o serbisyo.

Gumawa tayo ng simpleng Terraform configuration file na gumagawa ng EC2 instance sa AWS cloud platform.

provider 'aws' {

bersyon = '~> 3.0'

rehiyon = 'kami-silangan-2'

}

mapagkukunan 'aws_instance' 'myEC2' {

alin = 'ami-0a561b65214a47cac'

instance_type = 't3. maliit'

mga tag = {

Pangalan = 'bagong pagkakataon'

}

}

Una, tinutukoy namin ang block ng provider, na tinutukoy ang AWS provider at ang rehiyon kung saan nilikha ang mga mapagkukunan. Pagkatapos, tinutukoy namin ang aming block ng mapagkukunan bilang binubuo ng aws_instance bilang uri ng mapagkukunan, 'myEC2' bilang pangalan ng mapagkukunan at 'ami', 'instance_type', at 'tag' bilang mga katangian. Ang uri ng mapagkukunan ay maaaring nahahati sa dalawang bahagi: Provider at Resource. Sa kasong ito, ang 'aws' ang provider, at ang 'instance' ang mapagkukunan. Gayundin, kung kailangan ng isang tao na magbigay ng sampung instance ng EC2, maaaring gamitin ang attribute na 'count' na may sampu bilang value.

Ngayon, maaari na nating isagawa ang daloy ng Terraform na kinabibilangan ng pagsasagawa ng terraform init, terraform plan, at paglalapat ng terraform ng mga command para gawin ang resource na tinukoy namin.

Gamit ang provider ng Terraform AWS, maa-access namin ang AWS cloud platform at mahusay na makipag-ugnayan sa mga serbisyo nito nang hindi ginagamit ang AWS Management Console.

Paggamit ng Maramihang Provider sa Terraform

Sa halip na gumamit ng iisang provider, pinapayagan kami ng Terraform na gumamit ng maraming provider sa loob ng iisang file ng configuration ng Terraform upang makipag-ugnayan sa iba't ibang uri ng mga serbisyo at cloud platform.

Para sa iyong pang-unawa, magkaroon tayo ng halimbawa kung saan nag-deploy kami ng compute engine sa Google Cloud Platform, isang repository sa GitHub, at isang S3 bucket sa AWS cloud platform.

provider 'google' {

proyekto = 'unang proyekto'

rehiyon = 'us-west1'

}

provider 'github' {

token = 'YOUR_GITHUB_TOKEN'

}

provider 'aws' {

bersyon = '~> 3.0'

rehiyon = 'us-west-2'

}

mapagkukunan 'google_compute_instance' 'gcpInstance' {

pangalan = 'bagong pagkakataon'

uri_ng makina = 'n1-standard-1'

zone = 'us-west1-a'

boot_disk {

initialize_params {

larawan = 'debian-cloud/debian-10'

}

}

}

mapagkukunan 'github_repository' 'gitRepo' {

pangalan = 'bagong-repo'

paglalarawan = 'Ito ang aking bagong imbakan'

}

mapagkukunan 'aws_s3_bucket' 'awsBucket' {

balde = 'bagong balde'

acl = 'pribado'

}

Bilang unang hakbang, tinutukoy namin ang mga block ng aming provider upang tukuyin ang mga provider (Google, GitHub, at AWS) at ang kinakailangang impormasyon tulad ng rehiyon, pangalan ng proyekto, atbp. Pagkatapos, idineklara namin ang aming mga mapagkukunan gamit ang tatlong bloke ng mapagkukunan: “gcpInstance”, “ gitRepo', at 'awsBucket'.

Una, gumawa kami ng compute engine sa Google Cloud Platform na may 'new-instance' bilang pangalan, 'n1-standard-1' bilang uri ng machine, at 'us-west1-a' bilang availability zone. Ginagamit nito ang Debian bilang host OS. Pagkatapos, gumawa kami ng GitHub repository na pinangalanang 'new-repo' at isang angkop na paglalarawan. Panghuli, ang isang S3 bucket ay ginawa gamit ang 'new-bucket' bilang ang pangalan at 'pribado' bilang ang halaga ng ACL (Access Control List).

Sa tatlong provider ng Terraform na iyon, madali kaming makikipag-ugnayan sa mga cloud platform at sa kanilang mga serbisyo.

Pinakamahuhusay na Kasanayan para sa Paggawa sa Mga Provider ng Terraform

Pag-bersyon ng Provider

Dapat nating tukuyin ang bersyon ng provider dahil nakakatulong ito upang matiyak ang pagkakapare-pareho at maiwasan ang hindi inaasahang pag-uugali dahil sa mga paglabag sa mga pagbabago sa mga mas bagong bersyon.

Pagpapatunay ng Provider

Magagamit namin ang mga secure na mekanismo ng pagpapatotoo tulad ng mga API key at mga token ng pag-access upang patotohanan at pahintulutan ang Terraform na makipag-ugnayan sa kani-kanilang cloud platform o serbisyo.

Dokumentasyon ng Provider

Ang mga provider ay kadalasang may mga partikular na opsyon sa configuration, feature, at limitasyon. Ang pag-unawa sa tutorial na ito ay tumutulong sa amin na gamitin ang provider nang epektibo at maiwasan ang mga karaniwang pitfalls.

Mga Update ng Provider

Maaaring maglabas ang mga provider ng mga pag-aayos ng bug, pagpapahusay sa performance, at mga bagong feature. Ang pananatiling up-to-date ay nagbibigay-daan sa amin na samantalahin ang mga pinakabagong pagpapahusay at mapanatili ang pagiging tugma sa ecosystem ng provider.

Suporta sa Komunidad

Magagamit natin ang mga online na forum, discussion board, at community channel para malutas ang mga pang-araw-araw na hamon na nararanasan habang ginagamit ang mga provider.

Error sa Paghawak at Pag-troubleshoot

Isang magandang kasanayan na maging pamilyar sa mga mensahe ng error, log, at mga diskarte sa pag-debug ng provider upang matulungan tayo nito sa pag-diagnose at pagresolba sa mga isyu nang mas mahusay.

Konklusyon

Kumuha kami ng maikling pagpapakilala sa mga provider ng Terraform. Tinalakay namin kung paano gamitin at i-configure ang mga ito para makipag-ugnayan sa iba't ibang cloud platform at serbisyo at kung paano gumamit ng maraming provider para pamahalaan ang mga mapagkukunan sa iba't ibang cloud platform at serbisyo sa pamamagitan ng madaling maunawaang mga halimbawa.