Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ọtụtụ ndị mmadụ maara ma jiri Terraform na-arụ ọrụ kwa ụbọchị, mana emebebeghị usoro kachasị mma maka ya. Otu ọ bụla ga-emepụta ụzọ na ụzọ nke ya.

Akụrụngwa gị fọrọ nke nta ka ọ bụrụ na ọ ga-amalite dị mfe: akụrụngwa ole na ole + ndị mmepe ole na ole. Ka oge na-aga, ọ na-etolite n'ụdị ntụziaka niile. Ị na-achọta ụzọ iji chịkọta akụrụngwa n'ime modul Terraform, hazie koodu n'ime nchekwa, yana ihe ọzọ nwere ike ịgahie? (okwu ikpeazụ ama ama)

Oge na-agafe ma ọ dị gị ka akụrụngwa gị bụ anụ ụlọ ọhụrụ gị, mana gịnị kpatara? Ị na-echegbu onwe gị maka mgbanwe ndị a na-apụghị ịkọwa akọwa na akụrụngwa, ị na-atụ egwu imetụ akụrụngwa na koodu aka - n'ihi ya, ị na-egbu oge ọrụ ọhụrụ ma ọ bụ belata àgwà ...

Mgbe afọ atọ nke ijikwa mkpokọta nke Terraform modul obodo maka AWS na Github na ogologo oge na-arụ ọrụ Terraform na mmepụta, Anton Babenko dị njikere ịkọrọ ahụmahụ ya: otu esi ede TF modul ka ọ ghara imerụ ahụ n'ọdịnihu.

Na njedebe nke okwu ahụ, ndị sonyere ga-amata nke ọma na ụkpụrụ njikwa akụrụngwa na Terraform, omume kachasị mma jikọtara na modul na Terraform, yana ụfọdụ ụkpụrụ ntinye aka na-aga n'ihu metụtara njikwa akụrụngwa.

Disclaimer: Achọpụtara m na akụkọ a bụ ụbọchị Nọvemba 2018-afọ 2 agafeela. A naghị akwado ụdị Terraform 0.11 a tụlere na akụkọ a. N'ime afọ 2 gara aga, a tọhapụrụ 2 ọhụrụ, nke nwere ọtụtụ ihe ọhụrụ, mmelite na mgbanwe. Biko ṅaa ntị na nke a ma lelee akwụkwọ ahụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ntughari:

Aha m bụ Anton Babenko. Ikekwe ụfọdụ n'ime unu ji koodu m dere. M ga-eji obi ike kwuo banyere nke a ugbu a karịa mgbe ọ bụla, n'ihi na enwere m ohere ịnweta ọnụ ọgụgụ.

M na-arụ ọrụ na Terraform ma bụrụ onye na-arụsi ọrụ ike na onye na-enye aka na ọnụ ọgụgụ dị ukwuu nke ọrụ mmeghe nke metụtara Terraform na Amazon kemgbe 2015.

Kemgbe ahụ, edeela m koodu zuru oke iji tinye ya n'ụzọ na-atọ ụtọ. M ga-agbalị ịgwa gị banyere nke a ugbu a.

M ga-ekwu maka mgbagwoju anya na nkọwapụta nke ịrụ ọrụ na Terraform. Mana nke ahụ abụghị isiokwu HighLoad n'ezie. Ma ugbu a, ị ga-aghọta ihe kpatara ya.

Ka oge na-aga, amalitere m ide modul Terraform. Ndị ọrụ dere ajụjụ, edegharịrị m ha. Mgbe ahụ, edere m ngwa dị iche iche iji hazie koodu ahụ site na iji nko tupu itinye aka, wdg.

Enwere ọtụtụ ọrụ na-adọrọ mmasị. Enwere m mmasị na ọgbọ koodu n'ihi na ọ na-amasị m ka kọmputa na-arụkwu ọrụ maka mụ na onye mmemme, n'ihi ya, m na-arụ ọrụ ugbu a na Terraform code generator site na eserese visual. Ikekwe ụfọdụ n'ime unu ahụla ha. Ndị a bụ igbe mara mma nwere akụ. Ma echere m na ọ dị mma ma ọ bụrụ na ị nwere ike pịa bọtịnụ "Export" wee nweta ya niile dị ka koodu.

Esi m Ukraine. Ebiwo m Norway ọtụtụ afọ.

Ọzọkwa, a nakọtara ozi maka akụkọ a n'aka ndị maara aha m ma chọta m na netwọk mmekọrịta. Ọ fọrọ nke nta ka m nwee otu aha otutu mgbe niile.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

https://github.com/terraform-aws-modules
https://registry.terraform.io/namespaces/terraform-aws-modules

Dịka m kwuru, abụ m onye na-elekọta Terraform AWS modul, nke bụ otu n'ime ebe nchekwa kachasị na GitHub ebe anyị na-akwado modul maka ọrụ ndị a na-ahụkarị: VPC, Autoscaling, RDS.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma ihe ị nụrụ ugbu a bụ ihe kacha mkpa. Ọ bụrụ na ị na-enwe obi abụọ na ị ghọtara ihe Terraform bụ, mgbe ahụ ọ ka mma iji oge gị nọrọ ebe ọzọ. A ga-enwe ọtụtụ okwu teknụzụ ebe a. Na egbughị m oge ikwuwapụta ọkwa nke akụkọ ahụ bụ nke kachasị elu. Nke a pụtara na m nwere ike ikwu okwu na-eji okwu niile kwere omume na-enweghị ọtụtụ nkọwa.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Terraform pụtara na 2014 dị ka akụrụngwa nke nyere gị ohere ide, hazie na jikwaa akụrụngwa dịka koodu. Isi echiche ebe a bụ "akụrụngwa dị ka koodu."

Edere akwụkwọ niile, dịka m kwuru terraform.io. Enwere m olileanya na ọtụtụ mmadụ mara maka saịtị a ma gụọ akwụkwọ ahụ. Ọ bụrụ otu a, yabụ ị nọ n'ebe kwesịrị ekwesị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nke a bụ ihe faịlụ nhazi Terraform mgbe niile dị, ebe anyị bu ụzọ kọwaa ụfọdụ mgbanwe.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

N'okwu a, anyị na-akọwapụta "aws_region".

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Mgbe ahụ, anyị na-akọwa ihe akụrụngwa anyị chọrọ ịmepụta.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Anyị na-agba ụfọdụ iwu, ọkachasị “terraform init” iji buo ndị dabere na ndị na-eweta ya.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Anyị na-agbakwa iwu "terraform apply" iji lelee ma nhazi ahụ akọwapụtara dabara na akụrụngwa anyị mepụtara. Ebe ọ bụ na anyị emepụtabeghị ihe ọ bụla, Terraform na-akpali anyị ịmepụta ihe ndị a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Anyị na-akwado nke a. Ya mere, anyị na-emepụta bọket a na-akpọ seasnail.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Enwekwara ọtụtụ ngwa ndị yiri ya. Ọtụtụ n'ime unu ndị na-eji Amazon maara AWS CloudFormation ma ọ bụ Google Cloud Deployment Manager ma ọ bụ Azure Resource Manager. Onye ọ bụla n'ime ha nwere mmejuputa ya nke ụdị ụfọdụ maka ijikwa akụrụngwa n'ime nke ọ bụla n'ime ndị na-eweta igwe ojii. Terraform bara uru karịsịa n'ihi na ọ na-enye gị ohere ijikwa ndị na-enye ihe karịrị 100. (Nkọwa ndị ọzọ ebe a)

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ebumnuche ndị Terraform chụpụrụ site na mmalite:

  • Terraform na-enye otu echiche nke akụrụngwa.
  • Na-enye gị ohere ịkwado nyiwe ọgbara ọhụrụ niile.
  • Emebere Terraform site na mmalite dị ka akụrụngwa na-enye gị ohere ịgbanwe akụrụngwa n'enweghị nsogbu yana amụma.

N'afọ 2014, okwu ahụ bụ "atụmatụ" dara nke ukwuu n'okwu a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Terraform bụ akụrụngwa zuru ụwa ọnụ. Ọ bụrụ na ị nwere API, ị nwere ike ijikwa ihe niile:

  • Ị nwere ike iji ihe karịrị ndị na-eweta 120 jikwaa ihe niile ịchọrọ.
  • Dịka ọmụmaatụ, ị nwere ike iji Terraform kọwaa ịnweta ebe nchekwa GitHub.
  • Ị nwere ike ịmepụta ma mechie ahụhụ na Jira.
  • Ị nwere ike ijikwa metrik ọhụrụ Relic.
  • Ị nwere ike ịmepụta faịlụ na igbe nchekwa ma ọ bụrụ na ịchọrọ n'ezie.

A na-enweta ihe niile site na iji ndị na-eweta Terraform, nke nwere API mepere emepe nke enwere ike ịkọwa na Go.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ka anyị kwuo na anyị malitere iji Terraform, gụọ ụfọdụ akwụkwọ na saịtị ahụ, lelee vidiyo, malite ide main.tf, dị ka m gosiri na slide ndị gara aga.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na ihe niile dị mma, ị nwere faịlụ na-emepụta VPC.

Ọ bụrụ na ịchọrọ ịmepụta VPC, ị ga-akọwapụta ihe dịka ahịrị iri na abụọ a. Kọwaa mpaghara nke ịchọrọ ịmepụta, nke cidr_block nke adreesị IP ị ga-eji. Ọ gwụla.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Dị ka o kwesịrị ịdị, ọrụ ahụ ga-eji nwayọọ nwayọọ too.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na ị ga-agbakwunye ụyọkọ ihe ọhụrụ n'ebe ahụ: akụrụngwa, isi mmalite data, ị ga-ejikọta ya na ndị na-eweta ọhụrụ, na mberede, ị ga-achọ iji Terraform iji jikwaa ndị ọrụ na akaụntụ GitHub gị, wdg. Ị nwere ike chọọ iji dị iche iche. Ndị na-enye DNS, gafere ihe niile. Terraform na-eme ka nke a dị mfe.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ka anyị lee ihe atụ na-esonụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ị na-agbakwụnye nwayọọ nwayọọ internet_gateway n'ihi na ịchọrọ ka akụrụngwa sitere na VPC gị nweta ịntanetị. Nke a bụ ezi echiche.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nsonaazụ bụ nke a main.tf:

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nke a bụ akụkụ kachasị elu nke main.tf.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nke a bụ akụkụ ala nke main.tf.

Mgbe ahụ ị gbakwunye subnet. Ka ọ na-erule oge ịchọrọ ịgbakwunye ọnụ ụzọ NAT, ụzọ, tebụl ntụgharị na ụyọkọ subnets ndị ọzọ, ị gaghị enwe ahịrị 38, mana ihe dịka ahịrị 200-300.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ya bụ, faịlụ main.tf gị na-eto nke nta nke nta. Ọtụtụ mgbe ndị mmadụ na-etinye ihe niile n'otu faịlụ. 10-20 Kb pụtara na main.tf. Were ya na 10-20 Kb bụ ọdịnaya ederede. Na ihe niile ejikọrọ na ihe niile. Nke a na-eji nwayọọ nwayọọ na-esi ike ịrụ ọrụ. 10-20 Kb bụ ezigbo onye ọrụ, mgbe ụfọdụ karịa. Ndị mmadụ anaghịkwa eche mgbe niile na nke a dị njọ.

Dị ka ọ dị na mmemme mgbe niile, ya bụ, ọ bụghị akụrụngwa dị ka koodu, a na-eji anyị iji ụyọkọ klaasị dị iche iche, ngwugwu, modul, otu. Terraform na-enye gị ohere ịme otu ihe ahụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

  • Koodu na-eto eto.
  • Ndabere n'etiti akụrụngwa na-etokwa.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma anyị nwere nnukwu mkpa. Anyị ghọtara na anyị enweghị ike ịdị ndụ otú a ọzọ. Koodu anyị na-aghọ nnukwu. 10-20 Kb bụ, n'ezie, ọ bụghị nnukwu, mana anyị na-ekwu naanị maka nchịkọta netwọkụ, ya bụ, ị gbakwunyere naanị akụrụngwa netwọkụ. Anyị anaghị ekwu maka Ngwa Load Balancer, ntinye ES ụyọkọ, Kubernetes, wdg, ebe enwere ike ịdụnye 100 Kb ngwa ngwa. Ọ bụrụ na ị dee ihe a niile, ị ga-amata n'oge na-adịghị anya na Terraform na-enye modul Terraform.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Modul Terraform bụ nhazi Terraform nwere onwe ya nke a na-ejikwa dịka otu. Nke ahụ bụ naanị ihe ịchọrọ ịma gbasara modul Terraform. Ha amaghị ihe ọ bụla, ha anaghị ekwe ka ịme njikọ ọ bụla dị mgbagwoju anya dabere na ihe. Ihe a niile dabara n'ubu nke ndị mmepe. Ya bụ, nke a bụ ụdị nhazi Terraform nke ị debururị. Ma ị nwere ike ịkpọ ya dị ka otu.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Yabụ anyị na-agbalị ịghọta ka anyị ga-esi bulie koodu 10-20-30 Kb anyị. Anyị ji nwayọọ nwayọọ ghọta na anyị kwesịrị iji ụfọdụ modul.

Ụdị modul mbụ ị na-ezute bụ modul akụrụngwa. Ha aghọtaghị ihe akụrụngwa gị gbasara, ihe azụmahịa gị gbasara, ebe na ihe ọnọdụ dị. Ndị a bụ ụdị modul nke m, yana ndị obodo mepere emepe, na-elekọta, nke anyị na-etinye n'ihu dịka ngọngọ mbụ maka akụrụngwa gị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ihe atụ nke modul akụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Mgbe anyị na-akpọ modul akụ, anyị na-akọwapụta ụzọ anyị ga-esi buru ọdịnaya ya.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Anyị na-egosi ụdị nke anyị chọrọ ibudata.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Anyị na-agafe ụyọkọ arụmụka n'ebe ahụ. Ọ gwụla. Nke ahụ bụ naanị ihe anyị kwesịrị ịma mgbe anyị na-eji modul a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ọtụtụ ndị na-eche na ọ bụrụ na ha ejiri ụdị ọhụrụ ahụ, ihe niile ga-adaba. Ma mba. A ghaghị ịsụgharị akụrụngwa a, anyị ga-aza nke ọma nke ụdị nke a ma ọ bụ akụrụngwa etinyere na ya.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nke a bụ koodu dị n'ime modul a. modul otu nchekwa. N'ebe a akwụkwọ mpịakọta na-aga n'ahịrị nke 640. Ịmepụta ihe nchekwa-croup na Amazon na nhazi ọ bụla enwere ike bụ ọrụ na-adịghị mkpa. O zughị nanị ịmepụta otu nchekwa ma gwa ya iwu ndị a ga-enyefe ya. Ọ ga-adị nnọọ mfe. Enwere mmachi nde dị iche iche n'ime Amazon. Dịka ọmụmaatụ, ọ bụrụ na ị na-eji VPC njedebe, ndepụta prefix, API dị iche iche ma gbalịa ijikọta ihe a niile na ihe ọ bụla ọzọ, mgbe ahụ Terraform anaghị ekwe ka ị mee nke a. Na Amazon API anabataghị nke a. Ya mere, anyị kwesịrị izochi ezi echiche a niile dị egwu na modul ma nye koodu njirimara nke yiri nke a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ọ dịghị mkpa ka onye ọrụ mara ka esi eme ya n'ime.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ụdị modul nke abụọ, nke nwere modul akụ, edozilarị nsogbu ndị na-emetụta azụmahịa gị. Ọtụtụ mgbe, nke a bụ ebe ndọtị maka Terraform ma na-esetịpụ ụfọdụ ụkpụrụ siri ike maka mkpado, maka ụkpụrụ ụlọ ọrụ. Ịnwekwara ike ịgbakwunye ọrụ ebe ahụ Terraform anaghị ekwe ka ị jiri ugbu a. Nke a dị ugbu a. Ugbu a ụdị 0.11, nke ga-abụ ihe gara aga. Mana ka, preprocessors, jsonnet, cookiecutter na ọtụtụ ihe ndị ọzọ bụ usoro inyeaka nke a ga-ejirịrị maka ọrụ zuru oke.

Ọzọ, m ga-egosi ụfọdụ ọmụmaatụ nke a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

A na-akpọ modul akụrụngwa n'otu ụzọ ahụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

E gosiputara isi mmalite ebe a ga-ebudata ọdịnaya.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

A na-agafe ọtụtụ ụkpụrụ ma gafere n'ime modul a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na-esote, n'ime modul a, a na-akpọ ụyọkọ modul akụrụngwa ka ịmepụta VPC ma ọ bụ Ngwa Load Balancer, ma ọ bụ ịmepụta otu nchekwa ma ọ bụ maka ụyọkọ Ọrụ Elastic Container.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Enwere ụdị modulu abụọ. Nke a dị mkpa ịghọta n'ihi na ọtụtụ ozi m chịkọtara na akụkọ a edeghị ya n'akwụkwọ.

Na akwụkwọ na Terraform ugbu a bụ nnọọ nsogbu n'ihi na ọ na-ekwu na e nwere ndị a atụmatụ, ị nwere ike iji ha. Mana ọ naghị ekwu ka esi eji njirimara ndị a, ihe kpatara na ọ ka mma iji ha. Ya mere, ọnụ ọgụgụ dị nnọọ ukwuu nke ndị mmadụ na-ede ihe ha na-enweghị ike ibi.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ka anyị leba anya ka esi ede modul ndị a ọzọ. Mgbe ahụ, anyị ga-ahụ otu esi akpọ ha na otu esi arụ ọrụ na koodu.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ndebanye aha Terraform - https://registry.terraform.io/

Ndụmọdụ #0 bụ ịghara ide modul akụrụngwa. Edeelarị gị ọtụtụ n'ime modul ndị a. Dị ka m kwuru, ha na-emeghe isi iyi, ha enweghị ihe ọ bụla nke azụmahịa gị mgbagha, ha enweghị hardcoded ụkpụrụ maka adreesị IP, okwuntughe, wdg Modul bụ nnọọ mgbanwe. O yikarịrị ka e deela ya. Enwere ọtụtụ modul maka akụrụngwa sitere na Amazon. Ihe dịka 650. Ọtụtụ n’ime ha dịkwa mma.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

N'ihe atụ a, mmadụ bịakwutere gị wee sị, “Achọrọ m inwe ike ijikwa nchekwa data. Mepụta modul ka m nwee ike ịmepụta nchekwa data." Onye ahụ amaghị nkọwa mmejuputa nke Amazon ma ọ bụ Terraform. Ọ na-ekwu naanị: "Achọrọ m ijikwa MSSQL." Ya bụ, anyị pụtara na ọ ga-akpọ modul anyị, gafere ụdị engine n'ebe ahụ, ma gosi mpaghara oge.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma mmadụ ekwesịghị ịma na anyị ga-emepụta ihe abụọ dị iche iche n'ime modul a: otu maka MSSQL, nke abụọ maka ihe ọ bụla ọzọ, naanị n'ihi na na Terraform 0.11 ị nweghị ike ịkọwa ụkpụrụ mpaghara oge dị ka nhọrọ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na ọpụpụ na modul a, mmadụ ga-enwe ike ịnweta adreesị naanị. Ọ gaghị ama site na nchekwa data, site na nke akụ anyị na-eke ihe a niile n'ime. Nke a bụ ihe dị ezigbo mkpa nke nzuzo. Ma nke a na-emetụta ọ bụghị naanị na modul ndị ahụ ọha na eze na-emeghe, kamakwa na modul ndị ị ga-ede n'ime ọrụ gị na otu gị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nke a bụ arụmụka nke abụọ, nke dị ezigbo mkpa ma ọ bụrụ na ị na-eji Terraform nwa oge. Ị nwere ebe nchekwa ebe ị na-etinye modul Terraform gị niile maka ụlọ ọrụ gị. Ma ọ bụ ihe kwesịrị ekwesị na ka oge na-aga, ọrụ a ga-eto ruo otu megabyte ma ọ bụ abụọ. Nke a dị mma.

Mana nsogbu bụ ka Terraform si akpọ modul ndị a. Dịka ọmụmaatụ, ọ bụrụ na ị kpọọ modul ka ịmepụta onye ọrụ ọ bụla, Terraform ga-ebu ụzọ buru ebe nchekwa ahụ dum wee gaa na nchekwa ebe modul ahụ dị. N'ụzọ dị otú a, ị ga-ebudata otu megabyte oge ọ bụla. Ọ bụrụ na ị jikwaa ndị ọrụ 100 ma ọ bụ 200, mgbe ahụ ị ga-ebudata 100 ma ọ bụ 200 megabyte, wee gaa na folda ahụ. Yabụ na ị chọghị ibudata ụyọkọ ihe oge ọ bụla ị kụrụ "Terraform init".

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

https://github.com/mbtproject/mbt

Enwere ngwọta abụọ maka nsogbu a. Nke mbụ bụ iji ụzọ ndị ikwu. Otu a ị na-egosi na koodu na nchekwa ahụ bụ mpaghara (./). Ma tupu ịmalite ihe ọ bụla, ị na-eme Git clone nke ebe nchekwa a na mpaghara. Otu a ị na-eme ya otu ugboro.

E nwere, n'ezie, ọtụtụ ọdịda. Dịka ọmụmaatụ, ịnweghị ike iji nsụgharị. Nke a na-esikwa ike mgbe ụfọdụ ibi na ya.

Ihe ngwọta nke abụọ. Ọ bụrụ na ị nwere ọtụtụ submodules na ị nweelarị ụdị pipeline guzobere, mgbe ahụ enwere ọrụ MBT, nke na-enye gị ohere ịnakọta ọtụtụ ngwugwu dị iche iche site na monorepository ma bulite ha na S3. Nke a bụ ụzọ dị mma. Ya mere, faịlụ iam-user-1.0.0.zip ga-atụ naanị 1 Kb, n'ihi na koodu ịmepụta akụ a dị obere. Ọ ga-arụkwa ọrụ ngwa ngwa.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ka anyị kwuo banyere ihe enweghị ike iji na modul.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Gịnị kpatara nke a ji dị njọ na modul? Ihe kacha njọ bụ iche onye ọrụ. Were ya na onye ọrụ bụ nhọrọ njirimara onye na-eweta nke ndị mmadụ dị iche iche nwere ike iji. Dịka ọmụmaatụ, anyị niile ga-eme ka ọrụ ahụ dị nro. Nke a pụtara na Terraform ga-arụ ọrụ a. Na mgbe ahụ na ọrụ a ọ ga-eme omume ndị ọzọ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na ihe ọjọọ bụ na ọ bụrụ na Vasya nwere mmasị iji jikọọ na Amazon n'otu ụzọ, dịka ọmụmaatụ, na-eji mgbanwe gburugburu ebe obibi na-adịghị mma, na Petya nwere mmasị iji igodo ya na-ekekọrịta, nke o nwere na ebe nzuzo, mgbe ahụ ị pụghị ịkọwa ha abụọ. Terraform. Na ka ha ghara inwe nhụjuanya, ọ dịghị mkpa igosi ngọngọ a na modul. A ghaghị igosi nke a n'ọkwa dị elu. Ya bụ, anyị nwere modul akụ, modul akụrụngwa na ihe mejupụtara n'elu. Na nke a kwesịrị igosi ebe dị elu.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ihe ọjọọ nke abụọ bụ onye na-enye nri. N'ebe a, ihe ọjọọ abụghị obere ihe, n'ihi na ọ bụrụ na ị dee koodu na ọ na-arụ ọrụ maka gị, mgbe ahụ ị nwere ike iche na ọ bụrụ na ọ na-arụ ọrụ, gịnị kpatara ịgbanwe ya.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ihe ọjọọ bụ na ị naghị achịkwa mgbe niile mgbe a ga-ewepụta onye na-enye ihe a, nke mbụ. Na nke abụọ, ị naghị achịkwa ihe aws ec2 pụtara, ya bụ, anyị na-ekwu maka Linux ma ọ bụ Windows ugbu a. Yabụ na ị nweghị ike ide ihe ga-arụ otu ihe ahụ na sistemụ arụmọrụ dị iche iche ma ọ bụ maka ikpe ndị ọrụ dị iche iche.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ihe atụ a na-ahụkarị, nke egosiri na akwụkwọ gọọmentị, bụ na ọ bụrụ na ị dee aws_intance ma kọwaa ụyọkọ arụmụka, ọ nweghị ihe dị njọ na nke ahụ ma ọ bụrụ na ị kọwaa onye na-enye "local-exec" ebe ahụ ma na-agba ọsọ gị ike- akwụkwọ egwuregwu .

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

N'ezie, ee, ọ dịghị ihe dị njọ na nke ahụ. Mana n'oge na-adịghị anya, ị ga-achọpụta na ihe a local-exec adịghị, dịka ọmụmaatụ, na launch_configuration.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma mgbe ị na-eji launch_configuration, ma ịchọrọ ịmepụta otu autoscaling otu ihe atụ, mgbe ahụ na launch_configuration enweghị echiche nke "onye na-enye". Enwere echiche nke "data onye ọrụ".

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ya mere, ihe ngwọta zuru ụwa ọnụ bụ iji data onye ọrụ. A ga-ewepụta ya ma na ihe atụ n'onwe ya, mgbe agbanyere ihe atụ, ma ọ bụ n'otu data onye ọrụ ahụ, mgbe otu autoscaling na-eji launch_configuration a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ọ bụrụ na ị ka chọrọ na-agba ọsọ na-enye, n'ihi na ọ bụ a gluing akụrụngwa, mgbe otu akụ na-emepụta, n'oge ahụ ịkwesịrị ịgba ọsọ gị provisioner, iwu gị. Enwere ọtụtụ ọnọdụ ndị dị otú ahụ.

Na akụrụngwa kacha mma maka nke a ka a na-akpọ null_resource. Null_resource bụ akụrụngwa na-enweghị atụ nke emebeghị n'ezie. Ọ dịghị emetụ ihe ọ bụla aka, ọ dịghị API, ọ dịghị autoscaling. Mana ọ na-enye gị ohere ijikwa mgbe ị na-agba ọsọ iwu. N'okwu a, iwu na-agba ọsọ n'oge okike.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

njikọ http://bit.ly/common-traits-in-terraform-modules

Enwere ọtụtụ akara. Agaghị m abanye n'ime ihe ịrịba ama niile nke ukwuu. Enwere akụkọ gbasara nke a. Ma ọ bụrụ na ị na-arụ ọrụ na Terraform ma ọ bụ jiri ndị ọzọ modul, mgbe ahụ, ị ​​na-achọpụtakarị na ọtụtụ modul, dị ka ọtụtụ n'ime koodu na-emeghe isi iyi, ndị mmadụ dere maka mkpa nke ha. Otu nwoke dere ya ma dozie nsogbu ya. M rapaara ya na GitHub, hapụ ya ka ọ dị ndụ. Ọ ga-adị ndụ, ma ọ bụrụ na enweghị akwụkwọ na ihe atụ n'ebe ahụ, ọ dịghị onye ga-eji ya. Ma ọ bụrụ na enweghị ọrụ na-enye gị ohere idozi ntakịrị karịa ọrụ ya kpọmkwem, mgbe ahụ ọ dịghị onye ga-eji ya. Enwere ọtụtụ ụzọ isi tufuo ndị ọrụ.

Ọ bụrụ na ịchọrọ ide ihe ka ndị mmadụ wee jiri ya mee ihe, m na-akwado ịgbaso akara ndị a.

Ndị a bụ:

  • Akwụkwọ na ihe atụ.
  • Ọrụ zuru oke.
  • Ndabara ezi uche dị na ya.
  • Koodu dị ọcha.
  • Ule.

Ule bụ ọnọdụ dị iche n'ihi na ọ na-esiri ha ike ide. Ekwenyere m karịa na akwụkwọ na ihe atụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ya mere, anyị lere anya ka esi ede modul. Enwere arụmụka abụọ. Nke mbụ, nke kachasị mkpa, abụghị ide ma ọ bụrụ na ị nwere ike, n'ihi na ụyọkọ ndị mmadụ emeelarị ọrụ ndị a n'ihu gị. Na nke abụọ, ọ bụrụ na ị ka na-ekpebi, gbalịa ka ị ghara iji ndị na-enye ọrụ na modul na ndị na-enye ihe.

Nke a bụ akụkụ isi awọ nke akwụkwọ ahụ. Ị nwere ike na-eche ugbu a: “Onweghị ihe edoghị anya. Ekwetaghị ya." Ma anyị ga-ahụ n'ime ọnwa isii.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ugbu a, ka anyị kwuo maka otu esi akpọ modul ndị a.

Anyị ghọtara na koodu anyị na-eto ka oge na-aga. Anyị enwekwaghị otu faịlụ, anyị enweela faịlụ 20. Ha niile dị n'otu folda. Ma ọ bụ ikekwe na nchekwa ise. Ma eleghị anya, anyị na-amalite n'ụzọ ụfọdụ imebi ha site na mpaghara, site na ụfọdụ components. Mgbe ahụ, anyị na-aghọta na ugbu a, anyị nwere ụfọdụ rudiments nke mmekọrịta na orchestration. Ya bụ, anyị ga-aghọta ihe anyị kwesịrị ime ma ọ bụrụ na anyị na-agbanwe netwọk akụrụngwa, ihe anyị kwesịrị ime na ihe ndị ọzọ nke anyị ihe onwunwe, otu esi eme ka ndị a dabere, wdg.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Enwere oke abụọ. Mkpebi mbụ niile dị n'otu. Anyị nwere otu nnukwu faịlụ. Maka oge a, nke a bụ omume kacha mma na weebụsaịtị Terraform.

Ma ugbu a, e dere ya dị ka deprecated na wepụ. Ka oge na-aga, obodo Terraform ghọtara na nke a dị anya site na omume kachasị mma, n'ihi na ndị mmadụ malitere iji ọrụ ahụ n'ụzọ dị iche iche. Ma enwere nsogbu. Dịka ọmụmaatụ, mgbe anyị depụtara ihe niile dabere n'otu ebe. Enwere ọnọdụ mgbe anyị pịa "Atụmatụ Terraform" na ruo mgbe Terraform na-emelite steeti akụrụngwa niile, ọtụtụ oge nwere ike ịgafe.

Ọtụtụ oge bụ, ọmụmaatụ, 5 nkeji. Maka ụfọdụ nke a bụ oge buru ibu. Ahụla m ikpe ebe ọ were nkeji iri na ise. API AWS nọrọ nkeji iri na ise na-agbalị ịchọpụta ihe na-eme na ọnọdụ akụ ọ bụla. Nke a bụ mpaghara buru ibu.

Na, n'ezie, nsogbu metụtara ya ga-apụta mgbe ịchọrọ ịgbanwe ihe n'otu ebe, wee chere 15 nkeji, ọ na-enye gị akwa akwa nke mgbanwe ụfọdụ. Ị gbụọ ọnụ mmiri, dee “Ee”, ma ọ dị ihe na-aga nke ọma. Nke a bụ ezigbo ihe atụ. Terraform anaghị anwa ichebe gị nsogbu. Ya bụ, dee ihe ị chọrọ. A ga-enwe nsogbu - nsogbu gị. Mgbe Terraform 0.11 anaghị anwa inyere gị aka n'ụzọ ọ bụla. Enwere ebe ụfọdụ na-adọrọ mmasị na 0.12 na-enye gị ohere ịsị: "Vasya, ị chọrọ nke a n'ezie, ị nwere ike ịbata gị?"

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ụzọ nke abụọ bụ ibelata mpaghara a, ya bụ, oku sitere n'otu ebe nwere ike ghara ijikọ ebe ọzọ.

Naanị nsogbu bụ na ịkwesịrị ịdepụta koodu ndị ọzọ, ya bụ, ịkwesịrị ịkọwapụta mgbanwe na ọnụ ọgụgụ buru ibu nke faịlụ ma melite nke a. Ụfọdụ ndị anaghị amasị ya. Nke a bụ ihe nkịtị nye m. Ụfọdụ ndị mmadụ na-echekwa: "Gịnị mere e ji dee ihe a n'ebe dị iche iche, m ga-etinye ya niile n'otu ebe." Nke a ga-ekwe omume, mana nke a bụ oke nke abụọ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ònye nwere ihe a nile bi n'otu ebe? Otu, abụọ, atọ mmadụ, ya bụ, mmadụ na-eji ya.

Na onye na-akpọ otu akụrụngwa, otu ngọngọ ma ọ bụ otu modul akụrụngwa? Mmadụ ise ruo asaa. Nke a dị mma.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Azịza a na-ahụkarị bụ ebe n'etiti. Ọ bụrụ na ọrụ ahụ buru ibu, mgbe ahụ, ị ​​​​ga-enwekarị ọnọdụ ebe ọ nweghị ngwọta dị mma ma ọ bụghị ihe niile na-arụ ọrụ n'ebe ahụ, n'ihi ya, ị ga-ejedebe na ngwakọta. Ọ dịghị ihe dị njọ na nke a, ọ bụrụhaala na ị ghọtara na ha abụọ nwere uru.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ọ bụrụ na ihe gbanwere na stack VPC na ịchọrọ itinye mgbanwe ndị a na EC2, ya bụ, ịchọrọ imelite otu autoscaling n'ihi na ị nwere subnet ọhụrụ, mgbe ahụ, m na-akpọ ụdị nkwado ndabere. Enwere ụfọdụ ngwọta: onye na-eji gịnị?

Enwere m ike ịtụ aro ihe ngwọta dị. Ị nwere ike iji Terraform mee anwansi ahụ, ma ọ bụ ị nwere ike iji makefiles iji Terraform. Ma hụ ma ọ bụrụ na ihe agbanweela ebe ahụ, ị ​​nwere ike ịmalite ya ebe a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Kedu ka mkpebi a si amasị gị? Ọ nwere onye kwenyere na nke a bụ ngwọta dị mma? Ahụrụ m ịmụmụ ọnụ ọchị, o doro anya na obi abụọ abanyela.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

N'ezie, anwala nke a n'ụlọ. Emebere Terraform ka ọ na-agba ọsọ site na Terraform.

N'otu akụkọ ha gwara m: "Ee e, nke a agaghị arụ ọrụ." Isi ihe bụ na o kwesịghị ịrụ ọrụ. Ọ bụ ezie na ọ dị oke egwu mgbe ị nwere ike ịmalite Terraform site na Terraform, na Terraform, ị gaghị eme nke ahụ. Terraform kwesịrị ịmalite ngwa ngwa mgbe niile.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

https://github.com/gruntwork-io/terragrunt/

Ọ bụrụ na ịchọrọ ịkpọ orchestration mgbe ihe gbanwere n'otu ebe, mgbe ahụ enwere Terragrunt.

Terragrunt bụ akụrụngwa, mgbakwunye na Terraform, nke na-enye gị ohere ịhazi na hazie oku na modul akụrụngwa.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Faịlụ nhazi Terraform a na-ahụkarị dị ka nke a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ị ezipụta ụdị modul ịchọrọ ịkpọ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Kedu ihe ndabere modul nwere?

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na kedu arụmụka modul a na-anabata. Nke ahụ bụ naanị ihe ịmara gbasara Terragrunt.

Akwụkwọ ahụ dị ebe ahụ, ma enwere kpakpando 1 na GitHub. Mana n'ọtụtụ ọnọdụ nke a bụ ihe ị kwesịrị ịma. Ma nke a dị nnọọ mfe iji mejuputa na ụlọ ọrụ ndị na-amalite ịrụ ọrụ na Terraform.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ya mere orchestration bụ Terragrunt. Enwere nhọrọ ndị ọzọ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ugbu a, ka anyị kwuo maka otu esi arụ ọrụ na koodu.

Ọ bụrụ na ịchọrọ ịgbakwunye atụmatụ ọhụrụ na koodu gị, n'ọtụtụ oge nke a dị mfe. Ị na-ede ihe enyemaka ọhụrụ, ihe niile dị mfe.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ọ bụrụ na ị nwere ụfọdụ akụ nke ị mepụtara tupu oge eruo, dịka ọmụmaatụ, ị mụtara banyere Terraform mgbe ịmepechara akaụntụ AWS ma chọọ iji ihe onwunwe ị nwere, mgbe ahụ ọ ga-adị mma ịgbatị modul gị n'ụzọ dị otú a, nke mere na ọ na-akwado iji ihe onwunwe dị adị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma kwadoro ịmepụta ihe ọhụrụ site na iji ihe ngọngọ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na mmepụta anyị na-eweghachite id mmepụta mgbe niile dabere n'ihe ejiri.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nsogbu nke abụọ dị oke mkpa na Terraform 0.11 na-arụ ọrụ na ndepụta.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ihe isi ike bụ na ọ bụrụ na anyị nwere ndepụta ndị ọrụ dị otú ahụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na mgbe anyị na-emepụta ndị ọrụ ndị a na-eji ngọngọ akụ, mgbe ahụ, ihe niile na-aga nke ọma. Anyị na-aga na ndepụta niile, na-ekepụta faịlụ maka nke ọ bụla. Ihe niile dị mma. Ma mgbe ahụ, dịka ọmụmaatụ, onye ọrụ3, onye nọ n'etiti, kwesịrị iwepụ ya na ebe a, mgbe ahụ, a ga-emepụtaghachi ihe niile e kere mgbe ọ gachara n'ihi na index ga-agbanwe.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Na-arụ ọrụ na listi na gburugburu steeti mara mma. Gịnị bụ ọnọdụ steeti? Nke a bụ ọnọdụ ebe a na-emepụta uru ọhụrụ mgbe emepụtara ihe onwunwe a. Ọmụmaatụ, AWS Access Key ma ọ bụ AWS Nzuzo Key, ya bụ mgbe anyị mepụtara onye ọrụ, anyị na-enweta ọhụrụ Access ma ọ bụ Nzuzo Key. Na oge ọ bụla anyị na-ehichapụ onye ọrụ, onye ọrụ a ga-enwe igodo ọhụrụ. Ma nke a abụghị feng shui, n'ihi na onye ọrụ agaghị achọ ka anyị na anyị bụrụ enyi ma ọ bụrụ na anyị ekepụtara ya onye ọrụ ọhụrụ mgbe ọ bụla mmadụ hapụrụ otu.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Nke a bụ ngwọta. Nke a bụ koodu edere na Jsonnet. Jsonnet bụ asụsụ nlegharị anya sitere na Google.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Iwu a na-enye gị ohere ịnakwere ndebiri a ma dị ka mmepụta ọ na-eweghachite faịlụ json nke emere dịka ndebiri gị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Template dị ka nke a.

Terraform na-enye gị ohere ịrụ ọrụ na HCL na Json n'otu ụzọ ahụ, yabụ ọ bụrụ na ị nwere ike ịmepụta Json, mgbe ahụ ị nwere ike itinye ya na Terraform. A ga-ebudata faịlụ nwere ndọtị .tf.json nke ọma.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Mgbe ahụ anyị na-arụ ọrụ na ya dị ka ọ dị na mbụ: terraform init, terramorm tinye. Na anyị ike abụọ ọrụ.

Ugbu a, anyị anaghị atụ egwu ma mmadụ hapụ otu. Anyị ga-edezi faịlụ json. Vasya Pupkin hapụrụ, Petya Pyatochkin nọgidere. Petya Pyatochkin agaghị enweta igodo ọhụrụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ijikọ Terraform na ngwaọrụ ndị ọzọ abụghị ọrụ Terraform n'ezie. Emepụtara Terraform dị ka ikpo okwu maka imepụta akụrụngwa ma ọ bụ ya. Na ihe niile na-apụta mgbe e mesịrị abụghị ihe gbasara Terraform. Ọ dịghịkwa mkpa ịkwa ya n'ebe ahụ. Enwere ike, nke na-eme ihe niile ị chọrọ.

Mana ọnọdụ na-ebilite mgbe anyị chọrọ ịgbatị Terraform wee kpọọ ụfọdụ iwu mgbe ihe mechara.

Ụzọ mbụ. Anyị na-emepụta mmepụta ebe anyị na-ede iwu a.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma mgbe ahụ, anyị na-akpọ iwu a site na shei terraform mmepụta ma kọwaa uru anyị chọrọ. Ya mere, a na-eji ụkpụrụ niile dochie iwu a. Ọ dị mma nke ukwuu.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ụzọ nke abụọ. Nke a bụ ojiji nke null_resource dabere na mgbanwe na akụrụngwa anyị. Anyị nwere ike ịkpọ otu local-exe ozugbo ID nke ụfọdụ akụrụngwa gbanwere.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Dị ka o kwesịrị ịdị, nke a niile dị mma na akwụkwọ, n'ihi na Amazon, dị ka ndị na-eweta ọha na eze ndị ọzọ, nwere ụyọkọ nke ọnụ ọnụ ya.

Okwu ikpe kachasị ọnụ bụ na mgbe ị mepee akaụntụ AWS, ọ dị mkpa mpaghara ị na-eji; a na-akwado njirimara a ebe ahụ; ikekwe ị meghere ya mgbe Disemba 2013 gasịrị; ikekwe ị na-eji ndabara na VPC wdg. Enwere ọtụtụ mgbochi. Amazon wee gbasasịa ha n'ime akwụkwọ ahụ dum.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Enwere ihe ole na ole m na-akwado izere.

Iji malite, zere arụmụka niile na-abụghị nke nzuzo n'ime atụmatụ Terraform ma ọ bụ Terraform CLI. Enwere ike itinye ihe a niile n'ime faịlụ tfvars ma ọ bụ na mgbanwe gburugburu ebe obibi.

Mana ịkwesighi iburu iwu anwansi a dum n'isi. Terraform atụmatụ – var and off we go. Ngbanwe nke mbụ bụ var, mgbanwe nke abụọ bụ var, nke atọ, nke anọ. Ụkpụrụ kachasị mkpa nke akụrụngwa dị ka koodu nke m na-ejikarị eme ihe bụ na nanị site n'ile anya na koodu ahụ, ekwesịrị m inwe nghọta doro anya nke ihe a na-etinye n'ebe ahụ, na steeti na ụkpụrụ ndị dị aṅaa. Ya mere, agaghị m agụ akwụkwọ ahụ ma ọ bụ jụọ Vasya kedu ihe parampat o jiri mepụta ụyọkọ anyị. Achọrọ m imepe faịlụ nwere ndọtị tfvars, nke na-adakọkarị na gburugburu ebe obibi, wee lelee ihe niile dị ebe ahụ.

Ọzọkwa, ejikwala arụmụka ebumnuche iji belata oke. Maka nke a ọ dị mfe iji obere modul akụrụngwa.

Ọzọkwa, ọ dịghị mkpa ịgbachi ma na-amụba myirịta. Ọ bụrụ na m nwere ihe onwunwe 150 na achọrọ m ịbawanye Amazon parallelism site na ndabara 10 ruo 100, mgbe ahụ ọ ga-abụ na ihe ga-agahie. Ma ọ bụ ọ nwere ike na-aga nke ọma ugbu a, mana mgbe Amazon kwuru na ị na-akpọ ọtụtụ oku, ị ga-enwe nsogbu.

Terraform ga-agbalị ịmalitegharị ọtụtụ n'ime nsogbu ndị a, mana ị gaghị enweta ihe ọ bụla. Parallelism=1 bụ ihe dị mkpa ị ga-eji ma ọ bụrụ na ị sụọ ngọngọ na ụfọdụ ahụhụ n'ime AWS API ma ọ bụ n'ime onye na-eweta Terraform. Ma mgbe ahụ ịkwesịrị ịkọwapụta: parallelism=1 wee chere ruo mgbe Terraform mechara otu oku, emesia nke abụọ, emesia nke atọ. Ọ ga-ebupụ ha n'otu n'otu.

Ndị mmadụ na-ajụkarị m, "Gịnị kpatara m ji eche na ebe ọrụ Terraform dị njọ?" Ekwenyere m na ụkpụrụ nke akụrụngwa dị ka koodu bụ ịhụ ihe akụrụngwa e kere na ihe ụkpụrụ.

Ọ bụghị ndị ọrụ mepụtara oghere ọrụ. Nke a apụtaghị na ndị ọrụ dere n'okwu GitHub na anyị enweghị ike ibi ndụ na-enweghị ebe ọrụ Terraform. Ọ dịghị ka nke a. Terraform Enterprise bụ ngwọta azụmahịa. Terraform sitere na HashiCorp kpebiri na anyị chọrọ oghere ọrụ, yabụ anyị wepụrụ ya. Ọ na-adịrị m mfe itinye ya na folda dị iche. Mgbe ahụ, a ga-enwe ntakịrị faịlụ, mana ọ ga-edo anya karị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Kedu ka esi arụ ọrụ na koodu ahụ? N'ezie, ịrụ ọrụ na ndepụta bụ naanị ihe mgbu. Ma were Terraform dị mfe. Nke a abụghị ihe ga-eme gị ihe niile dị mma. Ọ dịghị mkpa ịkwanye ihe niile e dere n'akwụkwọ ahụ n'ebe ahụ.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Edere isiokwu nke akụkọ ahụ "maka ọdịnihu." Aga m ekwu maka nke a nkenke. Maka ọdịnihu, nke a pụtara na 0.12 ga-ahapụ n'oge na-adịghị anya.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

0.12 bụ ọtụtụ ihe ọhụrụ. Ọ bụrụ na ị na-abịa site na mmemme mgbe niile, mgbe ahụ, ị ​​​​na-atụ uche ụdị ihe mgbochi siri ike, loops, arụ ọrụ ntụnyere ziri ezi na nke ọnọdụ, ebe ekpe na akụkụ aka nri adịghị agbakọ n'otu oge, ma dabere na ọnọdụ ahụ. Ị na-atụ uche ya nke ukwuu, yabụ 0.12 ga-edozi ya maka gị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Ma! Ọ bụrụ na ị na-ede obere ma dị mfe karị, na-eji modul emebere na ngwọta ndị ọzọ, mgbe ahụ ị gaghị echere ma nwee olileanya na 0.12 ga-abịa na-edozi ihe niile maka gị.

Nkọwa nke akụrụngwa na Terraform maka ọdịnihu. Anton Babenko (2018)

Daalụ maka akụkọ ahụ! Ị kwuru maka akụrụngwa dịka koodu wee kwuo otu okwu gbasara ule. Achọrọ ule na modul? Ònye ka ọrụ a bụ? Achọrọ m ide ya n'onwe m ka ọ bụ ọrụ nke modulu?

Afọ na-esote ga-ejupụta na akụkọ na anyị kpebiri ịnwale ihe niile. Ihe na-anwale bụ nnukwu ajụjụ. Enwere ọtụtụ ihe ndabere, ọtụtụ ihe mgbochi sitere na ndị na-enye ọrụ dị iche iche. Mgbe mụ na gị na-ekwu okwu, ị na-asị: “Achọrọ m ule,” m na-ajụkwa: “Gịnị ka ị ga-anwale?” Ị sị na ị ga-anwale na mpaghara gị. M na-ekwu na nke a anaghị arụ ọrụ na mpaghara m. Ya bụ, anyị agaghịdị enwe ike ikwekọrịta na nke a. Ọ bụghị ikwupụta na enwere ọtụtụ nsogbu teknụzụ. Ya bụ, ka esi ede ule ndị a ka ha wee zuo oke.

Ana m enyocha isiokwu a nke ọma, ya bụ ka esi ewepụta ule na-akpaghị aka dabere na akụrụngwa ị dere. Ya bụ, ọ bụrụ na ị dere koodu a, mgbe ahụ, m kwesịrị ịgba ọsọ ya, dabere na nke a, m nwere ike ịmepụta ule.

Nke kacha njọ bụ otu n'ime ọba akwụkwọ a na-akpọkarị na-enye gị ohere ide ule ntinye maka Terraform. Nke a bụ otu n'ime akụrụngwa. Ụdị DSL na-amasị m, dịka ọmụmaatụ, rspec.

Anton, daalụ maka akụkọ ahụ! Aha m bụ Valery. Ka m jụọ ntakịrị ajụjụ gbasara nkà ihe ọmụma. Enwere, n'ọnọdụ, ịnyefe, enwere ibugharị. Ịnye ihe na-emepụta akụrụngwa m, na ntinye, anyị na-ejupụta ya na ihe bara uru, dịka ọmụmaatụ, sava, ngwa, wdg. Ma ọ bụ n'isi m na Terraform bụ ihe maka ịnyefe, na Ansible bụ ihe maka ntinye, n'ihi na Ansible bụkwa maka anụ ahụ The akụrụngwa. na-enye gị ohere ịwụnye nginx, Postgres. Ma n'otu oge ahụ, ike yiri ka ọ na-enye ohere ịnye, dịka ọmụmaatụ, Amazon ma ọ bụ Google akụrụngwa. Mana Terraform na-enyekwa gị ohere ibugharị ụfọdụ ngwanrọ site na iji modul ya. Site n'echiche gị, enwere ụdị ókèala nke na-aga n'etiti Terraform na ihe nwere ike ime, ebe na ihe ka mma iji? Ma ọ bụ, dịka ọmụmaatụ, ị chere na Ansible bụ ihe mkpofu, ị kwesịrị ịgbalị iji Terraform maka ihe niile?

Ajụjụ dị mma, Valery. Ekwenyere m na Terraform agbanwebeghị n'ihe gbasara ebumnuche kemgbe 2014. E kere ya maka akụrụngwa wee nwụọ maka akụrụngwa. Anyị ka nwere ma ga-enwe mkpa maka njikwa nhazi nke enwere ike. Ihe ịma aka bụ na enwere data onye ọrụ n'ime launch_configuration. Na n'ebe ahụ, ị ​​na-adọpụ uche, wdg. Nke a bụ ọkọlọtọ ọdịiche na-amasị m kacha mma.

Ọ bụrụ na anyị na-ekwu maka akụrụngwa mara mma, mgbe ahụ enwere akụrụngwa dị ka Packer na-anakọta onyonyo a. Ma Terraform na-eji isi iyi data chọta onyonyo a wee melite launch_configuration ya. Ya bụ, n'ụzọ dị otú a pipeline bụ na anyị na-ebu ụzọ dọpụta Tracker, wee dọpụta Terraform. Ma ọ bụrụ na ụlọ emee, mgbe ahụ mgbanwe ọhụrụ na-eme.

Nnọọ! Daalụ maka akụkọ ahụ! Aha m bụ Misha, ụlọ ọrụ RBS. Ị nwere ike ịkpọ onye kwere ekwe site na onye na-enye ihe mgbe ị na-emepụta akụrụngwa. Ansible nwekwara isiokwu a na-akpọ dynamic inventory. Ma ị nwere ike ibu ụzọ kpọọ Terraform, wee kpọọ onye nwere ike, nke ga-ewepụ ihe onwunwe site na steeti wee mee ya. Kedu ihe ka mma?

Ndị mmadụ na-eji ha abụọ eme ihe na-aga nke ọma nha anya. Ọ dị m ka m na ngwa ahịa dị ike na Ansible bụ ihe dị mma, ma ọ bụrụ na anyị anaghị ekwu maka otu autoscaling. N'ihi na n'ime otu autoscaling anyị enweelarị ngwa nke anyị, nke a na-akpọ launch_configuration. Na launch_configuration anyị na-edekọ ihe niile kwesịrị ịmalite mgbe anyị mepụtara akụ ọhụrụ. Ya mere, na Amazon, iji ngwa ngwa ngwa ngwa na ịgụ faịlụ Terraform ts, n'uche nke m, karịrị oke. Ma ọ bụrụ na ị na-eji ngwaọrụ ndị ọzọ ebe ọ na-enweghị echiche nke "autoscaling otu", dịka ọmụmaatụ, ị na-eji DigitalOcean ma ọ bụ ndị ọzọ na-enye ebe a na-enweghị autoscaling otu, mgbe ahụ, ị ​​ga-eji aka sere API, chọta adreesị IP, mepụta. a dynamic inventory file , and Ansible ga-akpagharị na ya. Ya bụ, maka Amazon enwere launch_configuration, na maka ihe ọ bụla ọzọ enwere ngwa ngwa ngwa ngwa.

isi: www.habr.com

Tinye a comment