Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha mòran dhaoine eòlach air agus a 'cleachdadh Terraform nan obair làitheil, ach cha deach na cleachdaidhean as fheàrr a chruthachadh air a shon fhathast. Feumaidh gach sgioba na dòighean-obrach agus na dòighean aca fhèin a chruthachadh.

Tha am bun-structar agad gu cinnteach a’ tòiseachadh gu sìmplidh: beagan ghoireasan + beagan luchd-leasachaidh. Thar ùine, bidh e a 'fàs ann an diofar stiùiridhean. An lorg thu dòighean air goireasan a chuir còmhla ann am modalan Terraform, còd a chuir air dòigh ann am pasganan, agus dè eile a dh’ fhaodadh a dhol ceàrr? (faclan mu dheireadh ainmeil)

Bidh ùine a’ dol seachad agus tha thu a’ faireachdainn gur e am bun-structar agad am peata ùr agad, ach carson? Tha dragh ort mu atharrachaidhean nach gabh mìneachadh sa bhun-structar, tha eagal ort suathadh ris a’ bhun-structar agus an còd - mar thoradh air an sin, bidh thu a’ cur dàil air gnìomhachd ùr no a’ lughdachadh càileachd ...

Às deidh trì bliadhna de bhith a’ riaghladh cruinneachadh de mhodalan coimhearsnachd Terraform airson AWS air Github agus cumail suas Terraform ann an cinneasachadh fad-ùine, tha Anton Babenko deiseil airson a chuid eòlais a cho-roinn: mar a sgrìobhas e modalan TF gus nach leòn e san àm ri teachd.

Ro dheireadh na h-òraid, bidh com-pàirtichean nas eòlaiche air prionnsapalan stiùireadh ghoireasan ann an Terraform, na cleachdaidhean as fheàrr co-cheangailte ri modalan ann an Terraform, agus cuid de phrionnsapalan amalachaidh leantainneach co-cheangailte ri riaghladh bun-structair.

Àicheadh: Tha mi a’ toirt fa-near gu bheil ceann-latha air an aithisg seo Samhain 2018—2 bhliadhna air a dhol seachad mu thràth. Chan eil an dreach de Terraform 0.11 a chaidh a dheasbad san aithisg a’ faighinn taic tuilleadh. Thairis air an dà bhliadhna a dh’ fhalbh, chaidh 2 fhoillseachadh ùr fhoillseachadh, anns a bheil tòrr innleachdan, leasachaidhean agus atharrachaidhean. Feuch an toir thu aire dha seo agus thoir sùil air na sgrìobhainnean.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tùsan:

Is e m ’ainm Anton Babenko. Is dòcha gun do chleachd cuid agaibh an còd a sgrìobh mi. Bruidhnidh mi mu dheidhinn seo a-nis le barrachd misneachd na bha e a-riamh, oir tha cothrom agam air staitistig.

Tha mi ag obair air Terraform agus tha mi air a bhith nam chom-pàirtiche gnìomhach agus a’ cur ri àireamh mhòr de phròiseactan stòr fosgailte co-cheangailte ri Terraform agus Amazon bho 2015.

Bhon uairsin tha mi air còd gu leòr a sgrìobhadh airson a chuir ann an dòigh inntinneach. Agus feuchaidh mi ri innse dhut mu dheidhinn seo a-nis.

Bruidhnidh mi mu na duilgheadasan agus na mion-fhiosrachadh mu bhith ag obair le Terraform. Ach chan e sin cuspair HighLoad dha-rìribh. Agus a-nis tuigidh tu carson.

Thar ùine, thòisich mi a 'sgrìobhadh mhodalan Terraform. Sgrìobh luchd-cleachdaidh ceistean, rinn mi ath-sgrìobhadh orra. An uairsin sgrìobh mi grunn ghoireasan gus an còd a chruth a’ cleachdadh dubhan ro-gheallaidh, msaa.

Bha mòran phròiseactan inntinneach ann. Is toil leam gineadh còd oir is toil leam an coimpiutair barrachd is barrachd obrach a dhèanamh dhòmhsa agus don phrògramadair, agus mar sin tha mi an-dràsta ag obair air gineadair còd Terraform bho dhiagraman lèirsinneach. Is dòcha gu bheil cuid agaibh air am faicinn. Is e bogsaichean brèagha a tha seo le saighdean. Agus tha mi a’ smaoineachadh gu bheil e math mas urrainn dhut am putan “Export” a bhriogadh agus a h-uile càil fhaighinn mar chòd.

Tha mi às an Úcráin. Tha mi air a bhith a’ fuireach ann an Nirribhidh airson grunn bhliadhnaichean.

Cuideachd, chaidh fiosrachadh airson na h-aithisge seo a chruinneachadh bho dhaoine aig a bheil eòlas air m’ ainm agus a lorg mi air lìonraidhean sòisealta. Tha an aon far-ainm agam cha mhòr an-còmhnaidh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

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

Mar a thuirt mi, is mise am prìomh neach-gleidhidh de mhodalan Terraform AWS, a tha mar aon de na stòran as motha air GitHub far am bi sinn a ’toirt aoigheachd do mhodalan airson na gnìomhan as cumanta: VPC, Autoscaling, RDS.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus is e na chuala tu a-nis an rud as bunaitiche. Ma tha thu teagmhach gu bheil thu a’ tuigsinn dè a th’ ann an Terraform, tha e nas fheàrr do chuid ùine a chaitheamh an àiteigin eile. Bidh tòrr teirmean teicnigeach an seo. Agus cha do chuir mi dàil sam bith innse gur e ìre na h-aithisge an ìre as àirde. Tha seo a’ ciallachadh gun urrainn dhomh bruidhinn a’ cleachdadh a h-uile teirm a tha comasach gun mòran mìneachaidh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Nochd Terraform ann an 2014 mar ghoireas a leig leat bun-structar a sgrìobhadh, a dhealbhadh agus a riaghladh mar chòd. Is e am prìomh bhun-bheachd an seo “bun-structar mar chòd.”

Tha a h-uile sgrìobhainn, mar a thuirt mi, sgrìobhte a-steach terraform.io. Tha mi an dòchas gu bheil fios aig a’ mhòr-chuid air an làrach seo agus gu bheil iad air na sgrìobhainnean a leughadh. Ma tha, tha thu san àite cheart.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Seo mar a tha faidhle rèiteachaidh Terraform cunbhalach coltach, far am bi sinn a’ mìneachadh cuid de chaochladairean an toiseach.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Anns a 'chùis seo tha sinn a' mìneachadh "aws_region".

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

An uairsin bheir sinn cunntas air na goireasan a tha sinn airson a chruthachadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bidh sinn a’ ruith cuid de dh’ òrdughan, gu sònraichte “terraform init” gus eisimeileachd agus solaraichean a luchdachadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus bidh sinn a’ ruith an àithne “terraform apply” gus dèanamh cinnteach a bheil an rèiteachadh ainmichte a’ freagairt ris na goireasan a chruthaich sinn. Leis nach eil sinn air dad a chruthachadh roimhe seo, tha Terraform gar brosnachadh gus na goireasan sin a chruthachadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha sinn a’ dearbhadh seo. Mar sin bidh sinn a’ cruthachadh bucaid ris an canar seasail.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha grunn ghoireasan coltach ris ann cuideachd. Tha fios aig mòran agaibh a chleachdas Amazon air AWS CloudFormation no Google Cloud Deployment Manager no Azure Resource Manager. Tha a bhuileachadh fhèin de sheòrsa air choreigin aig gach fear dhiubh airson goireasan a riaghladh taobh a-staigh gach aon de na solaraichean sgòthan poblach sin. Tha Terraform gu sònraichte feumail oir leigidh e leat còrr air 100 solaraiche a riaghladh. (Barrachd mion-fhiosrachaidh an seo)

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Na h-amasan a tha Terraform air a leantainn bhon fhìor thoiseach:

  • Tha Terraform a’ toirt sealladh singilte de ghoireasan.
  • A’ leigeil leat taic a thoirt do gach àrd-ùrlar ùr-nodha.
  • Agus chaidh Terraform a dhealbhadh bhon fhìor thoiseach mar ghoireas a leigeas leat bun-structar atharrachadh gu sàbhailte agus gu ro-innseach.

Ann an 2014, bha am facal “predictable” gu math neo-àbhaisteach sa cho-theacsa seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha Terraform na ghoireas uile-choitcheann. Ma tha API agad, faodaidh tu smachd a chumail air a h-uile dad:

  • Faodaidh tu barrachd air solaraiche 120 a chleachdadh gus a h-uile dad a tha thu ag iarraidh a riaghladh.
  • Mar eisimpleir, faodaidh tu Terraform a chleachdadh gus cunntas a thoirt air ruigsinneachd gu stòran GitHub.
  • Faodaidh tu eadhon biastagan a chruthachadh agus a dhùnadh ann an Jira.
  • Faodaidh tu metrics New Relic a riaghladh.
  • Faodaidh tu eadhon faidhlichean a chruthachadh ann am bogsa drop ma tha thu dha-rìribh ag iarraidh.

Tha seo uile air a choileanadh le bhith a’ cleachdadh solaraichean Terraform, aig a bheil API fosgailte a dh’ fhaodar a mhìneachadh ann an Go.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Canaidh sinn gun do thòisich sinn a’ cleachdadh Terraform, leugh sinn cuid de sgrìobhainnean air an làrach, choimhead sinn air bhidio, agus thòisich sinn a’ sgrìobhadh main.tf, mar a sheall mi air na sleamhnagan roimhe.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus tha a h-uile dad sgoinneil, tha faidhle agad a chruthaicheas VPC.

Ma tha thu airson VPC a chruthachadh, an uairsin sònraichidh tu timcheall air na 12 loidhnichean sin. Thoir cunntas air an roinn a tha thu airson a chruthachadh, dè an cidr_block de sheòlaidhean IP a chleachdas tu. Sin e.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Gu nàdarra, bidh am pròiseact a 'fàs mean air mhean.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus bidh tu a’ cur dòrlach de stuth ùr an sin: goireasan, tobraichean dàta, bidh thu ag aonachadh le solaraichean ùra, gu h-obann bidh thu airson Terraform a chleachdadh gus luchd-cleachdaidh a riaghladh sa chunntas GitHub agad, msaa. Is dòcha gum bi thu airson diofar a chleachdadh Solaraichean DNS, cuir thairis air a h-uile càil. Tha Terraform ga dhèanamh furasta seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bheir sinn sùil air an eisimpleir a leanas.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Mean air mhean cuiridh tu internet_gateway ris a chionn 's gu bheil thu ag iarraidh gum bi cothrom air an eadar-lìon aig goireasan bhon VPC agad. Is e deagh bheachd a tha seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e an toradh am prìomh.tf seo:

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e seo am pàirt as àirde de main.tf.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e seo am pàirt as ìsle de main.tf.

An uairsin cuiridh tu subnet ris. Mun àm a tha thu airson geataichean NAT, slighean, bùird slighe agus dòrlach de subnets eile a chuir ris, cha bhith 38 loidhnichean agad, ach timcheall air 200-300 loidhne.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e sin, tha am faidhle main.tf agad a 'fàs mean air mhean. Agus gu math tric bidh daoine a 'cur a h-uile càil ann an aon fhaidhle. Tha 10-20 Kb a’ nochdadh ann am main.tf. Smaoinich gur e susbaint teacsa a th’ ann an 10-20 Kb. Agus tha a h-uile dad ceangailte ris a h-uile càil. Mean air mhean tha seo a 'fàs doirbh obrachadh leis. Tha 10-20 Kb na chùis cleachdaiche math, uaireannan barrachd. Agus chan eil daoine an-còmhnaidh a 'smaoineachadh gu bheil seo dona.

Mar ann am prògramadh cunbhalach, ie chan e bun-structar mar chòd, tha sinn cleachdte ri bhith a’ cleachdadh dòrlach de dhiofar chlasaichean, phasganan, mhodalan, bhuidhnean. Leigidh Terraform leat an aon rud a dhèanamh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

  • Tha an còd a’ fàs.
  • Tha eisimeileachd eadar goireasan a’ fàs cuideachd.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus tha feum mòr, mòr againn. Tha sinn a’ tuigsinn nach urrainn dhuinn a bhith beò mar seo tuilleadh. Tha an còd againn a’ fàs uamhasach. Chan eil 10-20 Kb, gu dearbh, glè mhòr, ach chan eil sinn a’ bruidhinn ach mu chruach an lìonraidh, i.e. cha do chuir thu ach goireasan lìonra ris. Chan eil sinn a’ bruidhinn mu dheidhinn Iarrtas Load Balancer, cleachdadh brabhsair ES, Kubernetes, msaa, far am faodar 100 Kb fhighe a-steach gu furasta. Ma sgrìobhas tu seo gu lèir, ionnsaichidh tu gu math luath gu bheil Terraform a’ toirt seachad modalan Terraform.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha modalan Terraform nan rèiteachadh Terraform fèin-chumanta a tha air a riaghladh mar bhuidheann. Sin a h-uile càil a dh'fheumas tu a bhith eòlach air modalan Terraform. Chan eil iad glic idir, chan eil iad a 'leigeil leat ceanglaichean iom-fhillte sam bith a dhèanamh a rèir rudeigin. Tha seo uile a 'tuiteam air guailnean an luchd-leasachaidh. Is e sin, is e seo dìreach seòrsa de rèiteachadh Terraform a tha thu air a sgrìobhadh mu thràth. Agus faodaidh tu dìreach a ghairm mar bhuidheann.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Mar sin tha sinn a’ feuchainn ri tuigsinn mar a nì sinn an fheum as fheàrr den chòd 10-20-30 Kb againn. Tha sinn a’ tuigsinn mean air mhean gum feum sinn cuid de mhodalan a chleachdadh.

Is e modalan stòrais a’ chiad sheòrsa de mhodalan a choinnicheas tu. Chan eil iad a’ tuigsinn cò mu dheidhinn a tha am bun-structar agad, cò mu dheidhinn a tha do ghnìomhachas, càite agus dè na suidheachaidhean a tha ann. Is iad sin dìreach na modalan a bhios mi fhèin, còmhla ris a’ choimhearsnachd stòr fosgailte, a’ rianachd, agus a chuir sinn air adhart mar phrìomh bhlocaichean togail airson do bhun-structair.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Eisimpleir de mhodal stòrais.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Nuair a chanas sinn modal stòrais, bidh sinn a’ sònrachadh dè an t-slighe air am bu chòir dhuinn na tha ann a luchdachadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bidh sinn a’ comharrachadh dè an dreach a tha sinn airson a luchdachadh sìos.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bidh sinn a’ dol seachad air dòrlach de argamaidean an sin. Sin e. Sin a h-uile rud a dh'fheumas sinn fios a bhith againn nuair a chleachdas sinn am modal seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha mòran den bheachd ma chleachdas iad an dreach as ùire, gum bi a h-uile dad seasmhach. Ach chan eil. Feumaidh am bun-structair a bhith air a dhreach; feumaidh sinn freagairt gu soilleir dè an dreach dhan deach seo no am pàirt sin a chleachdadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Seo an còd a tha am broinn a’ mhodal seo. Modal buidheann tèarainteachd. An seo tha an scroll a’ dol chun loidhne 640mh. Is e obair gu math neo-bheag a th’ ann a bhith a’ cruthachadh goireas tèarainteachd-cupa ann an Amazon anns a h-uile rèiteachadh a dh’ fhaodadh a bhith ann. Chan eil e gu leòr dìreach buidheann tèarainteachd a chruthachadh agus innse dha dè na riaghailtean a bu chòir a thoirt dha. Bhiodh e gu math sìmplidh. Tha millean bacadh eadar-dhealaichte taobh a-staigh Amazon. Mar eisimpleir, ma chleachdas tu Puing crìochnachaidh VPC, liosta ro-leasachan, diofar APIan agus a 'feuchainn ri seo a chur còmhla ri a h-uile càil eile, an uairsin cha leig Terraform leat seo a dhèanamh. Agus chan eil API Amazon a’ ceadachadh seo nas motha. Mar sin, feumaidh sinn an loidsig uamhasach seo fhalach ann am modal agus an còd cleachdaiche a thoirt seachad a tha a ’coimhead dìreach mar seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Chan fheum an neach-cleachdaidh fios a bhith agad ciamar a tha e air a dhèanamh a-staigh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha an dàrna seòrsa de mhodalan, anns a bheil modalan stòrais, mu thràth a’ fuasgladh dhuilgheadasan a tha nas freagarraiche don ghnìomhachas agad. Gu tric is e seo àite a tha na leudachadh airson Terraform agus a ’suidheachadh cuid de luachan teann airson tagaichean, airson inbhean companaidh. Faodaidh tu cuideachd feartan a chuir ris an sin nach leig Terraform leat a chleachdadh an-dràsta. Tha seo an-dràsta. A-nis dreach 0.11, a tha gu bhith na rud san àm a dh’ fhalbh. Ach fhathast, is e preprocessors, jsonnet, cookiecutter agus dòrlach de rudan eile an inneal taice a dh’ fheumar a chleachdadh airson obair làn-chuimseach.

An ath rud seallaidh mi eisimpleirean de seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Canar am modal bun-structair san aon dòigh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha an stòr às an tèid an susbaint a luchdachadh sìos air a chomharrachadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha dòrlach de luachan air an toirt a-steach agus air an toirt a-steach don mhodal seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

An ath rud, taobh a-staigh a’ mhodal seo, thathas ag iarraidh dòrlach de mhodalan ghoireasan gus VPC no Cothromaiche Luchdan Iarrtais a chruthachadh, no gus buidheann tèarainteachd a chruthachadh no airson brabhsair Seirbheis Gluasaid Elastic.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha dà sheòrsa de mhodalan ann. Tha seo cudromach a thuigsinn leis nach eil a’ mhòr-chuid den fhiosrachadh a chuir mi còmhla san aithisg seo sgrìobhte anns na sgrìobhainnean.

Agus tha na sgrìobhainnean ann an Terraform an-dràsta gu math duilich oir tha e dìreach ag ràdh gu bheil na feartan sin ann, faodaidh tu an cleachdadh. Ach chan eil i ag ràdh mar a chleachdas tu na feartan sin, carson a tha e nas fheàrr an cleachdadh. Mar sin, bidh àireamh mhòr de dhaoine a’ sgrìobhadh rudeigin nach urrainn dhaibh a bhith beò leis.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bheir sinn sùil air mar a sgrìobhas tu na modalan sin an ath rud. An uairsin chì sinn mar a chanas tu riutha agus mar a dh’ obraicheas tu leis a ’chòd.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Clàradh Terraform - https://registry.terraform.io/

Is e Tip #0 gun a bhith a’ sgrìobhadh mhodalan ghoireasan. Tha a’ mhòr-chuid de na modalan sin sgrìobhte dhut mar-thà. Mar a thuirt mi, tha iad nan còd fosgailte, chan eil loidsig gnìomhachais sam bith aca, chan eil luachan còd cruaidh aca airson seòlaidhean IP, faclan-faire, msaa. Tha am modal gu math sùbailte. Agus tha e coltach gun deach a sgrìobhadh mu thràth. Tha mòran mhodalan ann airson goireasan bho Amazon. Mu 650. Agus tha a 'mhòr-chuid dhiubh de chàileachd math.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

San eisimpleir seo, thàinig cuideigin thugad agus thuirt e, “Tha mi airson a bhith comasach air stòr-dàta a riaghladh. Cruthaich modal gus an urrainn dhomh stòr-dàta a chruthachadh." Chan eil fios aig an neach air mion-fhiosrachadh buileachaidh an dàrna cuid Amazon no Terraform. Tha e dìreach ag ràdh: "Tha mi airson MSSQL a stiùireadh." Is e sin, tha sinn a 'ciallachadh gum bi e a' gairm ar modal, a 'dol seachad air an t-seòrsa einnsean an sin, agus a' comharrachadh an raon ùine.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus cha bu chòir fios a bhith aig neach gun cruthaich sinn dà ghoireas eadar-dhealaichte taobh a-staigh a’ mhodal seo: aon airson MSSQL, an dàrna fear airson a h-uile càil eile, dìreach air sgàth ann an Terraform 0.11 chan urrainn dhut luachan sòn ùine a shònrachadh mar roghainn.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus aig an t-slighe a-mach bhon mhodal seo, bidh e comasach dha neach dìreach seòladh fhaighinn. Cha bhi fios aige bhon stòr-dàta, dè an goireas a tha sinn a 'cruthachadh seo uile air an taobh a-staigh. Tha seo na eileamaid glè chudromach de fhalach. Agus tha seo a 'buntainn chan ann a-mhàin ris na modalan sin a tha poblach ann an stòr fosgailte, ach cuideachd ris na modalan sin a sgrìobhas tu taobh a-staigh do phròiseactan agus sgiobaidhean.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e seo an dàrna argamaid, a tha gu math cudromach ma tha thu air a bhith a’ cleachdadh Terraform airson greis. Tha stòr agad anns an do chuir thu na modalan Terraform agad gu lèir airson do chompanaidh. Agus tha e gu math àbhaisteach, thar ùine, gum fàs am pròiseact seo gu meud megabytes no dhà. Tha seo gu math.

Ach is e an duilgheadas mar a chanas Terraform na modalan sin. Mar eisimpleir, ma chuireas tu fòn gu modal gus gach neach-cleachdaidh fa leth a chruthachadh, luchdaichidh Terraform an stòr gu lèir an toiseach agus an uairsin gluaisidh e chun phasgan far a bheil am modal sònraichte sin suidhichte. San dòigh seo luchdaichidh tu sìos aon megabyte gach turas. Ma stiùireas tu 100 no 200 neach-cleachdaidh, luchdaichidh tu sìos 100 no 200 megabytes, agus an uairsin thèid thu chun phasgan sin. Mar sin gu nàdarra chan eil thu airson dòrlach de stuth a luchdachadh sìos a h-uile uair a bhuaileas tu air “Terraform init”.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

https://github.com/mbtproject/mbt

Tha dà fhuasgladh air an duilgheadas seo. Is e a’ chiad fhear slighean co-cheangailte a chleachdadh. San dòigh seo bidh thu a’ nochdadh sa chòd gu bheil am pasgan ionadail (./). Agus mus cuir thu dad air bhog, nì thu clon Git den stòr seo gu h-ionadail. San dòigh seo nì thu e aon uair.

Tha, gu dearbh, mòran eas-bhuannachdan. Mar eisimpleir, chan urrainn dhut tionndadh a chleachdadh. Agus tha seo uaireannan duilich a bhith beò leis.

An dàrna fuasgladh. Ma tha tòrr submodules agad agus gu bheil loidhne-phìoban stèidhichte agad mu thràth, tha am pròiseact MBT ann, a leigeas leat iomadh pasgan eadar-dhealaichte a chruinneachadh bho monorepository agus an luchdachadh suas gu S3. Is e dòigh fìor mhath a tha seo. Mar sin, bidh cuideam am faidhle iam-user-1.0.0.zip dìreach 1 Kb, oir tha an còd airson an goireas seo a chruthachadh glè bheag. Agus obraichidh e tòrr nas luaithe.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bruidhnidh sinn mu na rudan nach gabh a chleachdadh ann am modalan.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Carson a tha an t-olc seo ann am modalan? Is e an rud as miosa a bhith a’ gabhail ris an neach-cleachdaidh. Gabh ris gur e roghainn dearbhaidh solaraiche a th’ ann an neach-cleachdaidh a dh’ fhaodas diofar dhaoine a chleachdadh. Mar eisimpleir, bidh sinn uile a 'co-chothromachadh an dreuchd. Tha seo a’ ciallachadh gun gabh Terraform an dreuchd seo. Agus an uairsin leis an dreuchd seo nì e gnìomhan eile.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus is e an t-olc ma tha Vasya dèidheil air ceangal ri Amazon ann an aon dòigh, mar eisimpleir, a’ cleachdadh an caochladair àrainneachd àbhaisteach, agus is toil le Petya an iuchair cho-roinnte aige a chleachdadh, a tha aige ann an àite dìomhair, chan urrainn dhut an dà chuid a shònrachadh. Cruth-tìre. Agus gus nach faigh iad eòlas air fulangas, chan eil feum air a 'bhloc seo a chomharrachadh anns a' mhodal. Feumaidh seo a bhith air a chomharrachadh aig ìre nas àirde. Is e sin, tha modal stòrais againn, modal bun-structair agus sgrìobhadh air a’ mhullach. Agus bu chòir seo a bhith air a chomharrachadh an àiteigin nas àirde.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e an dàrna olc an neach-solair. An seo chan eil an t-olc cho beag, oir ma sgrìobhas tu còd agus gu bheil e ag obair dhut, faodaidh tu smaoineachadh ma dh’ obraicheas e, carson a dh’ atharraicheas e e.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e an t-olc nach bi smachd agad an-còmhnaidh cuin a thèid an solaraiche seo a chuir air bhog, an toiseach. Agus san dàrna àite, chan eil smachd agad air na tha aws ec2 a’ ciallachadh, ie a bheil sinn a’ bruidhinn mu dheidhinn Linux no Windows a-nis. Mar sin chan urrainn dhut rudeigin a sgrìobhadh a dh'obraicheas an aon rud air diofar shiostaman obrachaidh no airson diofar chùisean luchd-cleachdaidh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e an eisimpleir as cumanta, a tha cuideachd air a chomharrachadh anns na sgrìobhainnean oifigeil, ma sgrìobhas tu aws_instance agus ma shònraicheas tu dòrlach de argamaidean, chan eil dad ceàrr air sin ma shònraicheas tu an neach-solair “local-exec” an sin agus ma ruitheas tu do chugallach- leabhar-cluiche.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Gu dearbh, tha, chan eil dad ceàrr air sin. Ach gu litearra a dh’ aithghearr tuigidh tu nach eil an rud local-exec seo ann, mar eisimpleir, ann an launch_configuration.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus nuair a chleachdas tu launch_configuration, agus gu bheil thu airson buidheann fèin-sgèile a chruthachadh bho aon eisimpleir, an uairsin ann an launch_configuration chan eil bun-bheachd ann de “solaraiche”. Tha bun-bheachd "dàta luchd-cleachdaidh".

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Mar sin, is e fuasgladh nas uile-choitcheann dàta luchd-cleachdaidh a chleachdadh. Agus thèid a chuir air bhog an dàrna cuid air an eisimpleir fhèin, nuair a thèid an t-eisimpleir a thionndadh air, no anns an aon dàta cleachdaiche, nuair a bhios am buidheann fèin-sgèile a’ cleachdadh an launch_configuration seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ma tha thu fhathast airson an t-solaraiche a ruith, leis gu bheil e na phàirt gluing, nuair a thèid aon ghoireas a chruthachadh, aig an àm sin feumaidh tu an t-solaraiche agad a ruith, an àithne agad. Tha tòrr de leithid de shuidheachaidhean ann.

Agus 's e null_resource an t-ainm a th' air a' ghoireas as ceart airson seo. Tha null_resource na ghoireas meallta nach deach a chruthachadh a-riamh. Cha bhith e a’ suathadh ri dad, no API, no fèin-sgèileadh. Ach leigidh e leat smachd a chumail air cuin a bu chòir dhut an àithne a ruith. Anns a 'chùis seo, tha an àithne air a ruith rè cruthachadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

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

Tha grunn chomharran ann. Cha tèid mi a-steach do na comharran gu lèir gu mionaideach. Tha artaigil ann mu dheidhinn seo. Ach ma tha thu air a bhith ag obair le Terraform no air modalan dhaoine eile a chleachdadh, tha thu gu tric air mothachadh gu bheil mòran mhodalan, mar a’ mhòr-chuid den chòd ann an còd fosgailte, air an sgrìobhadh le daoine airson am feumalachdan fhèin. Sgrìobh fear e agus dh’ fhuasgail e an duilgheadas aige. Chuir mi an sàs e ann an GitHub, leig leis fuireach. Bidh e beò, ach mura h-eil sgrìobhainnean agus eisimpleirean ann, cha chleachd duine e. Agus mura h-eil comas-gnìomh ann a leigeas leat beagan a bharrachd fhuasgladh na an obair shònraichte aige, cha chleachd duine e nas motha. Tha uimhir de dhòighean ann airson luchd-cleachdaidh a chall.

Ma tha thu airson rudeigin a sgrìobhadh gus an cleachd daoine e, tha mi a’ moladh na soidhnichean sin a leantainn.

Is iad sin:

  • Sgrìobhainnean agus eisimpleirean.
  • Gnìomh iomlan.
  • Ro-shealladh reusanta.
  • Còd glan.
  • Deuchainnean.

Is e suidheachadh eadar-dhealaichte a th’ ann an deuchainnean oir tha iad gu math duilich an sgrìobhadh. Tha mi a’ creidsinn barrachd ann an sgrìobhainnean agus eisimpleirean.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Mar sin, thug sinn sùil air mar a sgrìobhas sinn modalan. Tha dà argamaid ann. Is e a’ chiad fhear, is e sin an rud as cudromaiche, gun a bhith a’ sgrìobhadh mas urrainn dhut, oir tha grunn dhaoine air na gnìomhan sin a dhèanamh romhad mu thràth. Agus san dàrna h-àite, ma cho-dhùnas tu fhathast, feuch gun a bhith a’ cleachdadh solaraichean ann am modalan agus solaraichean.

Is e seo am pàirt liath den sgrìobhainnean. Is dòcha gu bheil thu a-nis a’ smaoineachadh: “Tha rudeigin mì-shoilleir. Gun a bhith cinnteach." Ach chì sinn ann an sia mìosan.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

A-nis bruidhnidh sinn mu mar a chanas tu na modalan sin.

Tha sinn a 'tuigsinn gu bheil an còd againn a' fàs thar ùine. Chan eil aon fhaidhle againn tuilleadh, tha 20 faidhle againn mu thràth. Tha iad uile ann an aon phasgan. No is dòcha còig pasganan. Is dòcha gu bheil sinn a’ tòiseachadh air dòigh air choireigin gam briseadh sìos a rèir sgìre, a rèir cuid de cho-phàirtean. An uairsin tha sinn a 'tuigsinn gu bheil cuid de rudan bunaiteach againn a-nis a thaobh sioncronadh agus orcastra. Is e sin, feumaidh sinn tuigsinn dè a bu chòir dhuinn a dhèanamh ma dh’ atharraich sinn goireasan lìonra, dè a bu chòir dhuinn a dhèanamh leis a ’chòrr de ar goireasan, ciamar a dh’ adhbharaicheas sinn na h-eisimeileachd sin, msaa.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha dà cheann-uidhe ann. Tha a’ chiad cheann-uidhe uile ann an aon. Tha aon phrìomh fhaidhle againn. Aig an àm seo, b’ e seo an cleachdadh oifigeil as fheàrr air làrach-lìn Terraform.

Ach a-nis tha e sgrìobhte mar nach deach a mholadh agus a thoirt air falbh. Thar ùine, thuig coimhearsnachd Terraform gun robh seo fada bhon chleachdadh as fheàrr, oir thòisich daoine air am pròiseact a chleachdadh ann an diofar dhòighean. Agus tha duilgheadasan ann. Mar eisimpleir, nuair a bhios sinn a 'liostadh a h-uile eisimeileachd ann an aon àite. Tha suidheachaidhean ann nuair a phutas sinn “Plana Terraform” agus gus an ùraich Terraform stàitean a h-uile goireas, faodaidh tòrr ùine a dhol seachad.

Tha tòrr ùine, mar eisimpleir, 5 mionaidean. Airson cuid tha seo tòrr ùine. Tha mi air cùisean fhaicinn far an tug e 15 mionaidean. Chuir API AWS seachad 15 mionaidean a’ feuchainn ri faighinn a-mach dè bha a’ tachairt le staid gach goireas. Is e raon glè mhòr a tha seo.

Agus, gu nàdarra, nochdaidh duilgheadas co-cheangailte nuair a tha thu airson rudeigin atharrachadh ann an aon àite, an uairsin feitheamh 15 mionaidean, agus bheir e dhut canabhas de chuid de dh’ atharrachaidhean. Rinn thu spatadh, sgrìobh “Tha”, agus chaidh rudeigin ceàrr. Is e fìor eisimpleir a tha seo. Cha bhith Terraform a’ feuchainn ri do dhìon bho dhuilgheadasan. Is e sin, sgrìobh na tha thu ag iarraidh. Bidh duilgheadasan ann - na duilgheadasan agad. Ged nach eil Terraform 0.11 a’ feuchainn ri do chuideachadh ann an dòigh sam bith. Tha cuid de dh’ àiteachan inntinneach ann an 0.12 a leigeas leat a ràdh: “Vasya, tha thu dha-rìribh ag iarraidh seo, an urrainn dhut tighinn gu do chiall?”

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e an dàrna dòigh an raon seo a lughdachadh, is e sin, faodaidh gairmean bho aon àite a bhith nas lugha de cheangal bho àite eile.

Is e an aon dhuilgheadas gum feum thu barrachd còd a sgrìobhadh, i.e. feumaidh tu cunntas a thoirt air caochladairean ann an àireamh mhòr de fhaidhlichean agus seo ùrachadh. Tha cuid de dhaoine nach toil leis. Tha seo àbhaisteach dhòmhsa. Agus tha cuid a’ smaoineachadh: “Carson a sgrìobhas tu seo ann an diofar àiteachan, cuiridh mi e uile ann an aon àite.” Tha seo comasach, ach is e seo an dàrna fìor.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Cò aig a bheil seo uile a’ fuireach ann an aon àite? Aon, dhà, triùir, is e sin, tha cuideigin ga chleachdadh.

Agus cò a chanas aon phàirt sònraichte, aon bhloca no aon mhodal bun-structair? Còig gu seachd daoine. Tha seo fionnar.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e am freagairt as cumanta àiteigin sa mheadhan. Ma tha am pròiseact mòr, gu tric bidh suidheachadh agad far nach eil fuasgladh iomchaidh agus nach eil a h-uile dad ag obair a-mach an sin, agus mar sin thig measgachadh gu crìch. Chan eil dad ceàrr air seo, fhad ‘s a thuigeas tu gu bheil buannachdan aig an dà chuid.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ma dh’ atharraich rudeigin anns a ’chruach VPC agus gu robh thu airson na h-atharrachaidhean sin a chuir an sàs ann an EC2, ie bha thu airson a’ bhuidheann fèin-sgèile ùrachadh leis gu robh subnet ùr agad, is e sin an seòrsa orcastra eisimeileachd seo. Tha cuid de fhuasglaidhean ann: cò a chleachdas dè?

Is urrainn dhomh a mholadh dè na fuasglaidhean a th’ ann. Faodaidh tu Terraform a chleachdadh gus an draoidheachd a dhèanamh, no faodaidh tu makefiles a chleachdadh gus Terraform a chleachdadh. Agus faic a bheil rudeigin air atharrachadh an sin, faodaidh tu a chuir air bhog an seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ciamar a tha an co-dhùnadh seo a’ còrdadh riut? A bheil duine den bheachd gur e fuasgladh math a tha seo? Tha mi a’ faicinn gàire, a rèir choltais tha teagamhan air a dhol a-steach.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Gu dearbh, na feuch seo aig an taigh. Cha deach Terraform a dhealbhadh a-riamh airson a ruith bho Terraform.

Aig aon aithisg thuirt iad rium: “Chan obraich, chan obraich seo." Is e am puing nach bu chòir dha obrachadh. Ged a tha e a’ coimhead cho drùidhteach nuair as urrainn dhut Terraform a chuir air bhog bho Terraform, agus an uairsin Terraform, cha bu chòir dhut sin a dhèanamh. Bu chòir dha Terraform tòiseachadh gu math furasta an-còmhnaidh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

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

Ma tha feum agad air orcastra gairm nuair a tha rudeigin air atharrachadh ann an aon àite, tha Terragrunt ann.

Is e goireas a th’ ann an Terragrunt, rud a bharrachd air Terraform, a leigeas leat fiosan gu modalan bun-structair a cho-òrdanachadh agus a chuir air dòigh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha faidhle rèiteachaidh Terraform àbhaisteach a’ coimhead mar seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Bidh thu a’ sònrachadh dè am modal sònraichte a tha thu airson a ghairm.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Dè an eisimeileachd a tha aig a’ mhodal?

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus dè na h-argamaidean a tha am modal seo a’ gabhail ris. Sin a h-uile càil a tha fios mu Terragrunt.

Tha na sgrìobhainnean ann, agus tha rionnagan 1 air GitHub. Ach sa mhòr-chuid de chùisean is e seo na dh'fheumas tu a bhith eòlach. Agus tha seo gu math furasta a bhuileachadh ann an companaidhean a tha dìreach a 'tòiseachadh ag obair le Terraform.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Mar sin tha orchestration mar Terragrunt. Tha roghainnean eile ann.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

A-nis leigidh sinn bruidhinn mu mar a dh'obraicheas tu leis a 'chòd.

Ma dh’ fheumas tu feartan ùra a chur ris a’ chòd agad, sa mhòr-chuid de chùisean tha seo furasta. Tha thu a’ sgrìobhadh goireas ùr, tha a h-uile dad sìmplidh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ma tha goireas air choireigin agad a chruthaich thu ro-làimh, mar eisimpleir, dh’ ionnsaich thu mu Terraform às deidh dhut cunntas AWS fhosgladh agus gu bheil thu airson na goireasan a th’ agad mu thràth a chleachdadh, bhiodh e iomchaidh am modal agad a leudachadh san dòigh seo, gus am bi tha e a’ toirt taic do chleachdadh nan goireasan a th’ ann mar-thà.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus thug e taic do chruthachadh goireasan ùra a 'cleachdadh a' ghoireas bloc.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Air toradh bidh sinn an-còmhnaidh a’ tilleadh id toraidh a rèir na chaidh a chleachdadh.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha an dàrna duilgheadas fìor chudromach ann an Terraform 0.11 ag obair le liostaichean.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e an duilgheadas a th’ ann ma tha an leithid de liosta de luchd-cleachdaidh againn.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus nuair a chruthaicheas sinn na cleachdaichean sin a 'cleachdadh goireas bloc, bidh a h-uile càil a' dol gu math. Bidh sinn a 'dol tron ​​​​liosta gu lèir, a' cruthachadh faidhle airson gach fear. Tha a h-uile dad gu math. Agus an uairsin, mar eisimpleir, bu chòir cleachdaiche3, a tha sa mheadhan, a thoirt air falbh às an seo, an uairsin thèid na goireasan uile a chaidh a chruthachadh às a dhèidh ath-chruthachadh oir atharraichidh an clàr-amais.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ag obair le liostaichean ann an àrainneachd stàiteil. Dè a th’ ann an àrainneachd stàiteil? Seo an suidheachadh far a bheil luach ùr air a chruthachadh nuair a thèid an goireas seo a chruthachadh. Mar eisimpleir, AWS Access Key no AWS Secret Key, i.e. nuair a chruthaicheas sinn neach-cleachdaidh, gheibh sinn inntrigeadh ùr no iuchair dhìomhair. Agus a h-uile uair a sguabas sinn às neach-cleachdaidh, bidh iuchair ùr aig a’ chleachdaiche seo. Ach chan e feng shui a tha seo, oir cha bhith an neach-cleachdaidh ag iarraidh a bhith caraidean leinn ma chruthaicheas sinn cleachdaiche ùr dha a h-uile uair a dh'fhàgas cuideigin an sgioba.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Is e seo am fuasgladh. Is e seo an còd sgrìobhte ann an Jsonnet. Tha Jsonnet na chànan teamplaid bho Google.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Leigidh an àithne seo leat gabhail ris an teamplaid seo agus mar thoradh tillidh e faidhle json a thèid a dhèanamh a rèir do theamplaid.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha an teamplaid a 'coimhead mar seo.

Leigidh Terraform leat a bhith ag obair leis an dà chuid HCL agus Json san aon dòigh, mar sin ma tha comas agad Json a ghineadh, faodaidh tu a dhol a-steach do Terraform. Thèid am faidhle leis an leudachadh .tf.json a luchdachadh sìos gu soirbheachail.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus an uairsin bidh sinn ag obair leis mar as àbhaist: terraform init, terramorm a 'buntainn. Agus bidh sinn a 'cruthachadh dà neach-cleachdaidh.

A-nis chan eil eagal oirnn ma dh'fhàgas cuideigin an sgioba. Deasaichidh sinn am faidhle json. Dh'fhalbh Vasya Pupkin, dh'fhuirich Petya Pyatochkin. Chan fhaigh Petya Pyatochkin iuchair ùr.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Chan e fìor obair Terraform a th’ ann a bhith ag amalachadh Terraform le innealan eile. Chaidh Terraform a chruthachadh mar àrd-ùrlar airson goireasan a chruthachadh agus sin agad e. Agus chan eil a h-uile dad a thig am bàrr nas fhaide air adhart na adhbhar dragh dha Terraform. Agus chan eil feum air fhighe a-steach an sin. Tha Ansible ann, a nì a h-uile dad a dh’ fheumas tu.

Ach bidh suidheachaidhean ag èirigh nuair a tha sinn airson Terraform a leudachadh agus beagan àithne a ghairm às deidh rudeigin a chrìochnachadh.

A' chiad dòigh. Bidh sinn a’ cruthachadh toradh far am bi sinn a’ sgrìobhadh an àithne seo.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Agus an uairsin bidh sinn a 'gairm an àithne seo bhon toradh terraform slige agus a' sònrachadh an luach a tha sinn ag iarraidh. Mar sin, tha an àithne air a chuir gu bàs leis na luachan uile a chaidh a chuir na àite. Tha e gu math comhfhurtail.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

An dàrna dòigh. Is e seo cleachdadh null_resource a rèir atharrachaidhean sa bhun-structair againn. Is urrainn dhuinn an aon local-exe a ghairm cho luath ‘s a dh’ atharraicheas ID cuid de ghoireasan.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Gu nàdarra, tha seo uile rèidh air pàipear, oir tha dòrlach de chùisean iomaill fhèin aig Amazon, mar a h-uile solaraiche poblach eile.

Is e a’ chùis iomaill as cumanta nuair a dh’fhosglas tu cunntas AWS, gu bheil e cudromach dè na roinnean a chleachdas tu; a bheil am feart seo air a chomasachadh an sin; 's dòcha gun do dh'fhosgail thu e às dèidh Dùbhlachd 2013; 's dòcha gu bheil thu a' cleachdadh default ann an VPC msaa Tha mòran chuingealachaidhean ann. Agus sgap Amazon iad air feadh nan sgrìobhainnean.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha beagan rudan ann a tha mi a’ moladh a sheachnadh.

Gus tòiseachadh, seachain a h-uile argamaid neo-dhìomhair taobh a-staigh plana Terraform no Terraform CLI. Faodar seo uile a chuir an dàrna cuid ann am faidhle tfvars no ann an caochladair àrainneachd.

Ach chan fheum thu an òrdugh draoidheachd iomlan seo a chuimhneachadh. Plana terraform - var agus dheth thèid sinn. Is e a’ chiad caochladair var, is e an dàrna caochladair var, an treas, an ceathramh. Is e am prionnsapal bun-structair as cudromaiche mar chòd a bhios mi a’ cleachdadh mar as trice, dìreach le bhith a’ coimhead air a’ chòd, gum bu chòir tuigse shoilleir a bhith agam air na tha air a chleachdadh an sin, anns an stàit agus dè na luachan. Agus mar sin chan fheum mi na sgrìobhainnean a leughadh no faighneachd dha Vasya dè na crìochan a chleachd e gus ar cruinneachadh a chruthachadh. Feumaidh mi dìreach faidhle fhosgladh leis an leudachadh tfvars, a bhios gu tric a rèir na h-àrainneachd, agus coimhead air a h-uile càil an sin.

Cuideachd, na cleachd argamaidean targaid gus an raon a lughdachadh. Airson seo tha e mòran nas fhasa modalan bun-structair beaga a chleachdadh.

Cuideachd, chan eil feum air co-shìnteachd a chuingealachadh agus a mheudachadh. Ma tha goireasan 150 agam agus gu bheil mi airson co-shìnteachd Amazon àrdachadh bhon 10 gu 100 bunaiteach, is coltaiche gun tèid rudeigin ceàrr. No is dòcha gun tèid e gu math a-nis, ach nuair a tha Amazon ag ràdh gu bheil thu a’ dèanamh cus ghairmean, bidh thu ann an trioblaid.

Feuchaidh Terraform ris a’ mhòr-chuid de na duilgheadasan sin ath-thòiseachadh, ach cha choilean thu cha mhòr dad. Tha Parallelism=1 na rud cudromach a chleachdas tu ma thuislicheas tu air bug taobh a-staigh API AWS no taobh a-staigh an t-solaraiche Terraform. Agus an uairsin feumaidh tu a shònrachadh: parallelism = 1 agus feitheamh gus an cuir Terraform crìoch air aon ghairm, an uairsin an dàrna fear, an uairsin an treas fear. Cuiridh e air bhog iad aon ri aon.

Bidh daoine tric a’ faighneachd dhomh, “Carson a tha mi a’ smaoineachadh gu bheil àiteachan-obrach Terraform olc?” Tha mi a’ creidsinn gur e prionnsapal bun-structair mar chòd faicinn dè am bun-structar a chaidh a chruthachadh agus leis na luachan.

Cha deach àiteachan-obrach a chruthachadh le luchd-cleachdaidh. Chan eil seo a’ ciallachadh gun do sgrìobh luchd-cleachdaidh ann an cùisean GitHub nach urrainn dhuinn a bhith beò às aonais àiteachan-obrach Terraform. Chan eil chan ann mar seo. Tha Terraform Enterprise na fhuasgladh malairteach. Cho-dhùin Terraform bho HashiCorp gu robh feum againn air àiteachan-obrach, agus mar sin chuir sinn air falbh e. Tha e tòrr nas fhasa dhomh a chuir ann am pasgan air leth. An uairsin bidh beagan a bharrachd fhaidhlichean ann, ach bidh e nas soilleire.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ciamar a bhith ag obair leis a 'chòd? Gu dearbh, is e obrachadh le liostaichean an aon phian. Agus gabh Terraform nas fhasa. Chan e seo an rud a nì a h-uile dad math dhut. Chan eil feum air a h-uile dad a tha sgrìobhte anns na sgrìobhainnean an sin a ghluasad.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Chaidh cuspair na h-aithisg a sgrìobhadh “airson an ama ri teachd.” Bruidhnidh mi mu dheidhinn seo gu math goirid. Airson an ama ri teachd, tha seo a 'ciallachadh gun tèid 0.12 a leigeil ma sgaoil a dh'aithghearr.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tha 0.12 na tunna de stuth ùr. Ma thig thu bho phrògramadh cunbhalach, bidh thu ag ionndrainn a h-uile seòrsa de bhlocaichean fiùghantach, lùban, obrachaidhean coimeas ceart agus cumhach, far nach eil na taobhan clì is deas air an tomhas aig an aon àm, ach a rèir an t-suidheachaidh. Bidh thu ga ionndrainn gu mòr, agus mar sin fuasglaidh 0.12 e dhut.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Ach! Ma sgrìobhas tu nas lugha agus nas sìmplidh, a’ cleachdadh mhodalan deiseil agus fuasglaidhean treas-phàrtaidh, cha bhith agad ri feitheamh agus an dòchas gun tig 0.12 agus a h-uile càil a chàradh dhut.

Tuairisgeul air bun-structar ann an Terraform airson an ama ri teachd. Anton Babenko (2018)

Tapadh leibh airson an aithris! Bhruidhinn thu mu bhun-structar mar chòd agus gu litireil thuirt thu aon fhacal mu dheuchainnean. A bheil feum air deuchainnean ann am modalan? Cò an dleastanas a tha seo? Am feum mi a sgrìobhadh mi-fhìn neo a bheil e an urra ris na modalan?

Bidh an ath bhliadhna air a lìonadh le aithisgean gu bheil sinn air co-dhùnadh a h-uile càil a dhearbhadh. Is e a’ cheist as motha a bu chòir dhut deuchainn a dhèanamh. Tha tòrr eisimeileachd ann, tòrr chuingealachaidhean bho dhiofar sholaraichean. Nuair a bhios tu fhèin agus mise a’ bruidhinn agus tu ag ràdh: “Tha feum agam air deuchainnean,” bidh mi a’ faighneachd: “Dè a nì thu deuchainn?” Tha thu ag ràdh gun dèan thu deuchainn anns an sgìre agad. An uairsin tha mi ag ràdh nach eil seo ag obair anns an sgìre agam. Is e sin, cha bhith e comasach dhuinn eadhon aontachadh air seo. Gun a bhith ag innse gu bheil tòrr dhuilgheadasan teicnigeach ann. Is e sin, mar a sgrìobhas tu na deuchainnean sin gus am bi iad iomchaidh.

Tha mi gu gnìomhach a’ rannsachadh a’ chuspair seo, ie mar a ghineas tu deuchainnean gu fèin-ghluasadach stèidhichte air a’ bhun-structar a sgrìobh thu. Is e sin, ma sgrìobh thu an còd seo, feumaidh mi a ruith, stèidhichte air an seo is urrainn dhomh deuchainnean a chruthachadh.

Terratest Is e seo aon de na leabharlannan as trice a chaidh ainmeachadh a leigeas leat deuchainnean amalachaidh a sgrìobhadh airson Terraform. Is e seo aon de na goireasan. Is fheàrr leam an seòrsa DSL, mar eisimpleir, rspec.

Anton, tapadh leat airson an aithris! 'S e m' ainm Valery. Leig leam ceist bheag fheallsanachail fhaighneachd. Tha, le cumhachan, solarachadh ann, tha cleachdadh ann. Bidh solarachd a’ cruthachadh mo bhun-structair, ann an cleachdadh bidh sinn ga lìonadh le rudeigin feumail, mar eisimpleir, frithealaichean, tagraidhean, msaa. a’ leigeil leat nginx, Postgres a stàladh. Ach aig an aon àm, tha e coltach gu bheil Ansible a’ ceadachadh solar, mar eisimpleir, de ghoireasan Amazon no Google. Ach leigidh Terraform leat cuid de bhathar-bog a chleachdadh a’ cleachdadh na modalan aige. Bho do bheachd-sa, a bheil seòrsa de chrìoch ann a tha a’ ruith eadar Terraform agus Ansible, càite agus dè as fheàrr a chleachdadh? No, mar eisimpleir, a bheil thu a 'smaoineachadh gu bheil Ansible mar sgudal mar-thà, bu chòir dhut feuchainn ri Terraform a chleachdadh airson a h-uile càil?

Deagh cheist, Valery. Tha mi a’ creidsinn nach eil Terraform air atharrachadh a thaobh adhbhar bho 2014. Chaidh a chruthachadh airson bun-structair agus bhàsaich e airson bun-structair. Bha agus bidh feum againn fhathast air riaghladh rèiteachaidh Ansible. Is e an dùbhlan gu bheil dàta cleachdaiche taobh a-staigh launch_configuration. Agus an sin tha thu a' tarraing Ansible, msaa. Seo an t-eadar-dhealachadh coitcheann as fheàrr leam.

Ma tha sinn a’ bruidhinn mu dheidhinn ann am bun-structar breagha, tha goireasan mar Packer ann a chruinnicheas an ìomhaigh seo. Agus an uairsin bidh Terraform a’ cleachdadh an stòr dàta gus an ìomhaigh seo a lorg agus an launch_configuration aige ùrachadh. Is e sin, san dòigh seo tha an loidhne-phìoban gu bheil sinn an toiseach a 'tarraing Tracker, an uairsin a' tarraing Terraform. Agus ma thachras togail, thig atharrachadh ùr.

Halò! Tapadh leibh airson an aithris! Is e m’ ainm Misha, companaidh RBS. Faodaidh tu fios a chuir gu Ansible tro sholaraiche nuair a chruthaicheas tu goireas. Tha cuspair aig Ansible cuideachd ris an canar clàr fiùghantach. Agus faodaidh tu Terraform a ghairm an toiseach, agus an uairsin fios a chuir gu Ansible, a bheir goireasan bhon stàit agus a chuir gu bàs. Dè tha nas fheàrr?

Bidh daoine a’ cleachdadh an dà chuid leis an aon shoirbheachas. Tha e coltach riumsa gu bheil clàr-stuthan fiùghantach ann an Ansible na rud goireasach, mura h-eil sinn a’ bruidhinn mu dheidhinn buidheann fèin-sgèile. Leis gu bheil am pasgan inneal againn fhèin anns a’ bhuidheann fèin-sgèileadh, ris an canar launch_configuration. Ann an launch_configuration bidh sinn a’ clàradh a h-uile càil a dh’ fheumar a chuir air bhog nuair a chruthaicheas sinn goireas ùr. Mar sin, le Amazon, tha cleachdadh clàr fiùghantach agus leughadh am faidhle Terraform ts, nam bheachd-sa, ro mhòr. Agus ma chleachdas tu innealan eile far nach eil bun-bheachd air “buidheann fèin-sgèile”, mar eisimpleir, bidh thu a’ cleachdadh DigitalOcean no solaraiche eile far nach eil buidheann fèin-sgèileadh ann, an sin feumaidh tu an API a tharraing le làimh, seòlaidhean IP a lorg, cruthachadh faidhle tasgaidh fiùghantach , agus bidh Ansible a’ dol troimhe mu thràth. Is e sin, airson Amazon tha launch_configuration ann, agus airson a h-uile càil eile tha clàr-seilbhe fiùghantach.

Source: www.habr.com

Cuir beachd ann