Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Batho ba bangata ba tseba le ho sebelisa Terraform mosebetsing oa bona oa letsatsi le letsatsi, empa mekhoa e metle bakeng sa eona ha e so thehoe. Sehlopha se seng le se seng se tlameha ho iqapela mekhoa le mekhoa ea sona.

Meaho ea hau ea motheo e batla e qala e le bonolo: lisebelisoa tse 'maloa + bahlahisi ba seng bakae. Ha nako e ntse e ea, e hōla ka litsela tsohle. Na u fumana mekhoa ea ho hlophisa lisebelisoa ho li-module tsa Terraform, ho hlophisa khoutu ka lifoldara, 'me ke eng hape e ka senyehang? (mantsoe a ho qetela a tummeng)

Nako ea feta 'me u ikutloa eka lisebelisoa tsa hau ke phoofolo ea hau e ncha, empa hobane'ng? U tšoenyehile ka liphetoho tse ke keng tsa hlalosoa litsing tsa motheo, u tšaba ho ama mekhoa ea motheo le khoutu - ka lebaka leo, u lieha ho sebetsa ka mokhoa o mocha kapa u fokotsa boleng ...

Ka mor'a lilemo tse tharo tsa ho laola pokello ea li-module tsa sechaba sa Terraform bakeng sa AWS ho Github le tlhokomelo ea nako e telele ea Terraform tlhahiso, Anton Babenko o itokiselitse ho arolelana phihlelo ea hae: mokhoa oa ho ngola li-module tsa TF e le hore e se ke ea utloisa bohloko nakong e tlang.

Qetellong ea puo, barupeluoa ba tla be ba tloaelane haholoanyane le melao-motheo ea tsamaiso ea lisebelisoa ho Terraform, mekhoa e metle e amanang le limmojule tsa Terraform, le melao-motheo e tsoelang pele ea kopanyo e amanang le taolo ea litšebeletso tsa motheo.

ikgololo: Kea hlokomela hore tlaleho ena e ngotsoe ka November 2018-lilemo tse 2 li se li fetile. Mofuta oa Terraform 0.11 o boletsoeng tlalehong ha o sa tšehetsoa. Lilemong tse 2 tse fetileng, ho lokollotsoe likhatiso tse ncha tse 2, tse nang le lintlafatso tse ngata, ntlafatso le liphetoho. Ka kopo ela hloko sena 'me u hlahlobe litokomane.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Lipeeletso:

Lebitso la ka ke Anton Babenko. Mohlomong ba bang ba lona ba sebelisitse khoutu eo ke e ngotseng. Hona joale ke tla bua ka sena ka kholiseho ho feta leha e le neng pele, hobane ke khona ho fumana lipalo-palo.

Ke sebetsa ho Terraform mme esale ke le seabo le seabo ho palo e kholo ea merero e bulehileng ea mohloli o amanang le Terraform le Amazon ho tloha 2015.

Ho tloha ka nako eo ke ngotse khoutu e lekaneng ho e beha ka tsela e thahasellisang. Mme ke tla leka ho o bolella ka sena hona jwale.

Ke tla bua ka lintho tse rarahaneng le tse tobileng tsa ho sebetsa le Terraform. Empa ha e le hantle ha se taba ea HighLoad. 'Me joale u tla utloisisa lebaka.

Ha nako e ntse e ea, ke ile ka qala ho ngola li-module tsa Terraform. Basebelisi ba ngotse lipotso, ke li ngotse hape. Eaba ke ngola lits'ebeletso tse fapaneng ho fomata khoutu ke sebelisa hook ea pre-commit, joalo-joalo.

Ho ne ho e-na le merero e mengata e thahasellisang. Ke rata ho hlahisa khoutu hobane ke rata komporo ho nketsetsa mosebetsi o mongata le oa lenaneo, kahoo hajoale ke ntse ke sebetsa ho jenereithara ea khoutu ea Terraform ho tsoa litšoantšong tse bonoang. Mohlomong ba bang ba lōna le ba bone. Tsena ke mabokose a matle a nang le metsu. 'Me ke nahana hore ho monate ha u ka tobetsa konopo ea "Export"' me ue fumane kaofela e le khoutu.

Ke tsoa Ukraine. Ke qetile lilemo tse ngata ke lula Norway.

Hape, lintlha tsa tlaleho ena li bokelloa ho batho ba tsebang lebitso la ka mme ba mphumana marang-rang a sechaba. Ke batla ke e-na le lebitso la bosoasoi le tšoanang kamehla.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

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

Joalokaha ke boletse, ke 'na mohlokomeli ea ka sehloohong oa li-module tsa Terraform AWS, e leng e' ngoe ea libaka tse kholo ka ho fetisisa tsa polokelo ea GitHub moo re amohelang li-module bakeng sa mesebetsi e tloaelehileng haholo: VPC, Autoscaling, RDS.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me seo u se utloileng hona joale ke sa bohlokoa ka ho fetisisa. Haeba u belaela hore ua utloisisa hore na Terraform ke eng, ho molemo ho qeta nako ea hau sebakeng se seng. Ho tla ba le mantsoe a mangata a tekheniki mona. 'Me ha kea ka ka tsilatsila ho phatlalatsa hore boemo ba tlaleho ke bo phahameng ka ho fetisisa. Sena se bolela hore nka bua ke sebelisa mantsoe 'ohle a ka khonehang ntle le tlhaloso e ngata.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Terraform e hlahile ka selemo sa 2014 e le sesebelisoa se u lumellang ho ngola, ho rala le ho laola meaho joalo ka khoutu. Taba ea bohlokoa mona ke "infrastructure as code."

Litokomane tsohle, joalo ka ha ke boletse, li ngotsoe ka har'a terraform.io. Ke tšepa hore batho ba bangata ba tseba ka sebaka sena sa marang-rang mme ba balile litokomane. Haeba ho joalo, joale u sebakeng se nepahetseng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Sena ke seo faele ea tlhophiso ea Terraform e shebahalang ka eona, moo re qalang ho hlalosa mefuta e meng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Tabeng ena re hlalosa "aws_region".

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ebe re hlalosa hore na re batla ho theha lisebelisoa life.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Re tsamaisa litaelo tse ling, haholo "terraform init" molemong oa ho kenya litšepe le bafani.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me re tsamaisa taelo ea "terraform apply" ho bona hore na tlhophiso e boletsoeng e lumellana le lisebelisoa tseo re li entseng. Kaha ha re so bōpe letho pele, Terraform e re khothalletsa ho theha lisebelisoa tsena.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Re tiisa sena. Kahoo re etsa bakete e bitsoang seasnail.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ho boetse ho na le lisebelisoa tse 'maloa tse tšoanang. Bongata ba lona ba sebelisang Amazon le tseba AWS CloudFormation kapa Google Cloud Deployment Manager kapa Azure Resource Manager. E 'ngoe le e' ngoe ea tsona e na le ts'ebetsong ea eona ea mofuta o itseng bakeng sa ho laola lisebelisoa ka har'a e 'ngoe le e' ngoe ea bafani ba maru a sechaba. Terraform e bohlokoa haholo hobane e o lumella ho laola bafani ba fetang 100. (Lintlha tse ling mona)

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Lipheo tseo Terraform e li phehelletseng ho tloha qalong:

  • Terraform e fana ka pono e le 'ngoe ea lisebelisoa.
  • E u lumella ho ts'ehetsa li-platform tsohle tsa sejoale-joale.
  • 'Me Terraform e entsoe ho tloha qalong e le sesebelisoa se u lumellang hore u fetole mekhoa ea litšebeletso ka mokhoa o sireletsehileng le ka mokhoa o sa lebelloang.

Ka 2014, lentsoe "predictable" le ne le utloahala le sa tloaeleha tabeng ena.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Terraform ke sesebelisoa sa bokahohleng. Haeba u na le API, u ka laola ntho e 'ngoe le e' ngoe ka ho feletseng:

  • U ka sebelisa bafani ba fetang 120 ho laola tsohle tseo u li batlang.
  • Mohlala, o ka sebelisa Terraform ho hlalosa phihlello ea polokelo ea GitHub.
  • U ka theha le ho koala litšitšili ho Jira.
  • O ka laola metrics e Ncha ea Relic.
  • U ka ba ua etsa lifaele ka har'a dropbox haeba u hlile u batla.

Sena sohle se finyelloa ho sebelisoa bafani ba Terraform, ba nang le API e bulehileng e ka hlalosoang ho Go.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ha re re re qalile ho sebelisa Terraform, ra bala litokomane tse ling sebakeng sa marang-rang, ra shebella video, 'me ra qala ho ngola main.tf, joalo ka ha ke bonts'itse li-slideng tse fetileng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me ntho e' ngoe le e 'ngoe e ntle, u na le faele e etsang VPC.

Haeba u batla ho theha VPC, joale u hlalosa hoo e ka bang mela ena e 12. Hlalosa hore na u batla ho theha sebakeng sefe, u sebelise cidr_block ea liaterese tsa IP. Ke phetho.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ka tlhaho, morero o tla hōla butle-butle.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me u tla eketsa lithane tsa lintho tse ncha moo: lisebelisoa, mehloli ea data, u tla kopanya le bafani ba bacha, ka tšohanyetso u tla batla ho sebelisa Terraform ho laola basebelisi ba akhaonto ea hau ea GitHub, joalo-joalo U ka rata ho e sebelisa. bafani ba fapaneng ba DNS, tšela tsohle. Terraform e etsa hore sena se be bonolo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

A re hlahlobeng mohlala o latelang.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Butle-butle u eketsa internet_gateway hobane u batla lisebelisoa tse tsoang ho VPC ea hau ho fumana marang-rang. Ona ke mohopolo o motle.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Sephetho ke sena main.tf:

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ena ke karolo e ka holimo ea main.tf.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ena ke karolo e ka tlase ea main.tf.

Ebe o eketsa subnet. Nakong eo u batlang ho eketsa liheke tsa NAT, litsela, litafole tsa routing le bongata ba li-subnets tse ling, u ke ke ua ba le mela e 38, empa e ka ba mela e 200-300.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ke hore, faele ea hau ea main.tf e ntse e hola butle-butle. 'Me hangata batho ba kenya ntho e' ngoe le e 'ngoe faeleng e le 'ngoe. 10-20 KB e hlaha ho main.tf. Nahana hore 10-20 KB ke litaba tsa mongolo. Mme tsohle di hokahane le tsohle. Sena se ntse se ba thata ho sebetsa le sona butle-butle. 10-20 KB ke nyeoe e ntle ea mosebelisi, ka linako tse ling ho feta. ’Me ha se kamehla batho ba nahanang hore sena se mpe.

Joalo ka lenaneong le tloaelehileng, ke hore, eseng metheo joalo ka khoutu, re tloaetse ho sebelisa sehlopha sa lihlopha tse fapaneng, liphutheloana, li-module, lihlopha. Terraform e u lumella ho etsa ntho e tšoanang.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

  • Khoutu e ntse e hola.
  • Ho itšetleha pakeng tsa lisebelisoa le hona ho ntse ho eketseha.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mme re na le tlhoko e kgolo, e kgolo. Rea utloisisa hore re ke ke ra hlola re phela ka tsela ena. Khoutu ea rona e ntse e eketseha. 10-20 KB, ha e le hantle, ha e kholo haholo, empa re bua feela ka marang-rang a marang-rang, ke hore, u kentse lisebelisoa tsa marang-rang feela. Ha re bue ka Application Load Balancer, deployment ES cluster, Kubernetes, joalo-joalo, moo 100 KB e ka kengoang habonolo. Haeba u ngola tsena tsohle fatše, haufinyane u tla ithuta hore Terraform e fana ka li-module tsa Terraform.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Li-module tsa Terraform ke tlhophiso e ikemetseng ea Terraform e laoloang e le sehlopha. Ke sona feela seo u hlokang ho se tseba ka li-module tsa Terraform. Ha ba bohlale ho hang, ha ba u lumelle ho etsa likhokahano tse rarahaneng ho latela ntho e itseng. Sena sohle se oela mahetleng a bahlahisi. Ke hore, ona ke mofuta o mong feela oa tlhophiso ea Terraform eo u seng u e ngotse. 'Me u ka e bitsa feela e le sehlopha.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Kahoo re leka ho utloisisa hore na re tla ntlafatsa 10-20-30 KB ea khoutu ea rona joang. Re ntse re hlokomela butle-butle hore re hloka ho sebelisa li-module tse ling.

Mofuta oa pele oa li-module tseo u kopanang le tsona ke li-module tsa lisebelisoa. Ha ba utloisise hore na lisebelisoa tsa hau tsa motheo li bua ka eng, hore na khoebo ea hau e bua ka eng, maemo a hokae le hore na ke afe. Tsena ke li-module tseo 'na, hammoho le sechaba se bulehileng, re li tsamaisang, 'me re li behile pele e le litšiea tsa pele tsa ho haha ​​​​meralo ea hau ea motheo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mohlala oa mojule oa lisebelisoa.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ha re bitsa mojule oa lisebelisoa, re totobatsa hore na re lokela ho kenya litaba tsa eona ho tsoa tseleng efe.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Re bontša hore na re batla ho khoasolla mofuta ofe.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Re fetisa likhang tse ngata mono. Ke phetho. Ke phetho seo re lokelang ho se tseba ha re sebelisa mojule ona.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Batho ba bangata ba nahana hore haeba ba sebelisa phetolelo ea morao-rao, ntho e ’ngoe le e ’ngoe e tla tsitsa. Empa che. Meaho ea motheo e tlameha ho fetoloa; re tlameha ho araba ka ho hlaka hore na sena kapa karolo eo e rometsoe ho mofuta ofe.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Khoutu e ka hare ho mojulu ona ke ena. Mojule oa sehlopha sa tšireletso. Mona moqolo o ea moleng oa 640. Ho theha sesebelisoa sa ts'ireletso ho Amazon ka tlhophiso e 'ngoe le e' ngoe e ka khonehang ke mosebetsi o sa reng letho. Ha hoa lekana ho theha sehlopha sa ts'ireletso le ho se bolella hore na ke melao efe e lokelang ho fetisetsoa ho sona. Ho ka ba bonolo haholo. Ho na le lithibelo tse fapaneng tse limilione ka har'a Amazon. Ka mohlala, haeba u sebelisa VPC endpoint, prefix list, li-API tse fapaneng 'me e leka ho kopanya sena sohle le ntho e' ngoe le e 'ngoe, joale Terraform ha e u lumelle ho etsa sena. Mme Amazon API le eona ha e lumelle sena. Ka hona, re hloka ho pata mohopolo ona o mobe ka har'a mojule mme re fane ka khoutu ea mosebelisi e shebahalang tjena.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mosebelisi ha a hloke ho tseba hore na e entsoe joang ka hare.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mofuta oa bobeli oa li-module, o nang le li-module tsa lisebelisoa, o se o ntse o rarolla mathata a sebetsang haholoanyane khoebong ea hau. Hangata sena ke sebaka seo e leng katoloso ea Terraform mme se beha litekanyetso tse thata bakeng sa li-tag, bakeng sa litekanyetso tsa k'hamphani. U ka eketsa ts'ebetso moo Terraform e sa u lumelleng ho e sebelisa hajoale. Sena ke hona joale. Hona joale mofuta oa 0.11, o seng o tla fetoha ntho ea nakong e fetileng. Leha ho le joalo, li-preprocessors, jsonnet, cookiecutter le lintho tse ling tse ngata ke mokhoa o thusang o lokelang ho sebelisoa bakeng sa mosebetsi o felletseng.

E latelang ke tla bontša mehlala e meng ea sena.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mojule oa meaho o bitsoa ka mokhoa o ts'oanang.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mohloli o tsoang moo o ka jarollang litaba o bontšitsoe.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Bongata ba boleng bo fetisoa ebe bo fetisetsoa mojuleng ona.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ka mor'a moo, ka har'a mojule ona, sehlopha sa li-module tsa lisebelisoa li bitsoa ho theha VPC kapa Application Load Balancer, kapa ho theha sehlopha sa tšireletso kapa bakeng sa sehlopha sa Elastic Container Service.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ho na le mefuta e 'meli ea li-module. Sena ke sa bohlokoa ho utloisisa hobane boholo ba tlhahisoleseding eo ke e hlophisitseng tlalehong ena ha ea ngoloa litokomaneng.

'Me litokomane tse ho Terraform hajoale li na le mathata hobane li re feela ho na le likarolo tsena, u ka li sebelisa. Empa ha a bolele mokhoa oa ho sebelisa likarolo tsena, hobaneng ho le molemo ho li sebelisa. Ka hona, palo e kholo haholo ea batho e ngola ntho eo ba ke keng ba phela le eona.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ha re shebeng mokhoa oa ho ngola li-module tsena nakong e tlang. Joale re tla bona mokhoa oa ho li bitsa le mokhoa oa ho sebetsa ka khoutu.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Terraform Registry - https://registry.terraform.io/

Keletso #0 ke ho se ngole li-module tsa lisebelisoa. Boholo ba li-module tsena li se li ngoletsoe uena. Joalokaha ke boletse, ke mohloli o bulehileng, ha ba na mohopolo oa khoebo ea hau, ha ba na litekanyetso tse thata tsa liaterese tsa IP, li-password, joalo-joalo. Mojule oa fetoha haholo. 'Me ho ka etsahala hore ebe e se e ngotsoe. Ho na le li-module tse ngata tsa lisebelisoa tse tsoang Amazon. Ba ka bang 650. 'Me boholo ba bona ke ba boleng bo botle.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mohlaleng ona, motho e mong o ile a tla ho uena mme a re, "Ke batla ho khona ho laola database. Theha mojule e le hore ke tsebe ho theha database." Motho ha a tsebe lintlha tsa ts'ebetsong ea Amazon kapa Terraform. O re feela: "Ke batla ho laola MSSQL." Ke hore, re bolela hore e tla bitsa module ea rona, e fetise mofuta oa enjene moo, e bonts'e sebaka sa nako.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me motho ha aa lokela ho tseba hore re tla theha lisebelisoa tse peli tse fapaneng ka har'a mojule ona: e' ngoe bakeng sa MSSQL, ea bobeli bakeng sa ntho e 'ngoe le e' ngoe, hobane feela ho Terraform 0.11 u ke ke ua hlakisa boleng ba sebaka sa nako joalo ka boikhethelo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me ha o tsoa mojulung ona, motho o tla khona ho fumana aterese feela. A ke ke a tseba hore na ho tsoa ho eng, ke mohloli ofe oo re bōpang tsena tsohle ka hare ho oona. Ena ke karolo ea bohlokoa haholo ea ho pata. 'Me sena ha se sebetse feela ho li-module tse fumanehang sechabeng se bulehileng, empa hape le ho li-module tseo u tla li ngola ka har'a merero le lihlopha tsa hau.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ena ke khang ea bobeli, e bohlokoa haholo haeba esale u sebelisa Terraform nakoana. U na le polokelo eo u behang li-module tsa hau tsa Terraform bakeng sa k'hamphani ea hau. 'Me ho tloaelehile hore ha nako e ntse e ea morero ona o tla hōla ho fihlela boholo ba megabyte e le' ngoe kapa tse peli. Sena se lokile.

Empa bothata ke hore na Terraform e bitsa li-module tsena joang. Mohlala, haeba o letsetsa mojule ho theha mosebelisi e mong le e mong, Terraform e tla qala ka ho kenya polokelo eohle ebe e ea foldareng moo mojule o itseng o leng teng. Ka tsela ena o tla khoasolla megabyte e le 'ngoe nako le nako. Haeba u laola basebelisi ba 100 kapa 200, u tla khoasolla 100 kapa 200 megabytes, ebe u ea foldareng eo. Kahoo ka tlhaho ha u batle ho khoasolla lintho tse ngata nako le nako ha u otla "Terraform init".

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

https://github.com/mbtproject/mbt

Ho na le litharollo tse peli bothateng bona. Ea pele ke ho sebelisa mekhoa e meng. Ka tsela ena o bonts'a khoutu hore foldara ke ea lehae (./). Mme pele o qala eng kapa eng, o etsa mohlala oa Git oa polokelo ena sebakeng sa heno. Ka tsela ena o etsa hang.

Ehlile, ho na le mefokolo e mengata. Ka mohlala, u ke ke ua sebelisa phetolelo. 'Me ka linako tse ling ho thata ho phela le sena.

Tharollo ea bobeli. Haeba u na le li-submodule tse ngata 'me u se u ntse u e-na le mofuta o itseng oa lipeipi tse thehiloeng, joale ho na le morero oa MBT, o u lumellang ho bokella liphutheloana tse ngata tse fapaneng ho tloha monorepository le ho li kenya ho S3. Ena ke tsela e ntle haholo. Ka hona, faele ea iam-user-1.0.0.zip e tla ba boima ba 1 KB feela, hobane khoutu ea ho theha mohloli ona e nyenyane haholo. 'Me e tla sebetsa kapele haholo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ha re bue ka tse ke keng tsa sebelisoa li-module.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ke hobane'ng ha bobe bona bo le ka har'a li-module? Ntho e mpe ka ho fetisisa ke ho nahana ka mosebedisi. Assume user ke khetho ea netefatso ea mofani e ka sebelisoang ke batho ba fapaneng. Mohlala, bohle re tla nka karolo. Sena se bolela hore Terraform e tla nka karolo ena. 'Me joale ka karolo ena e tla etsa liketso tse ling.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me bobe ke hore haeba Vasya a rata ho hokahanya le Amazon ka tsela e le' ngoe, ka mohlala, a sebelisa maemo a fapaneng a tikoloho, 'me Petya o rata ho sebelisa senotlolo sa hae se arolelanoang, seo a nang le sona sebakeng se sephiring, joale u ke ke ua hlalosa ka bobeli Terraform. E le hore ba se ke ba utloa bohloko, ha ho hlokahale hore u bontše boloko bona ka har'a module. Sena se tlameha ho bontšoa maemong a holimo. Ke hore re na le resource module, an infrastructure module and a composition on top. 'Me sena se lokela ho bontšoa kae-kae holimo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Bokhopo ba bobeli ke mofani. Mona bobe ha bo nyane haholo, hobane haeba u ngola khoutu 'me e u sebeletsa, joale u ka nahana hore haeba e sebetsa, joale ke hobane'ng ha u e fetola.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Bobe ke hore ha se kamehla u laolang hore na mofani enoa o tla qala neng, pele. Taba ea bobeli, ha u laole hore na aws ec2 e bolela eng, ke hore, re bua ka Linux kapa Windows hona joale. Kahoo u ke ke ua ngola ntho e tla sebetsa ka mokhoa o ts'oanang lits'ebetsong tse fapaneng tsa ts'ebetso kapa maemong a fapaneng a basebelisi.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mohlala o tloaelehileng haholo, o bonts'itsoeng hape litokomaneng tsa semmuso, ke hore haeba u ngola aws_instance 'me u qaqisa likhang tse ngata, ha ho letho le phoso ka seo haeba u hlakisa mofani oa "local-exec" moo 'me u tsamaisa ansible- buka ea ho bapala.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ha e le hantle, e, ha ho letho le phoso ka seo. Empa haufinyane o tla hlokomela hore ntho ena ea lehae-exec ha e eo, mohlala, ho launch_configuration.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me ha u sebelisa launch_configuration,' me u batla ho theha sehlopha sa autoscaling ho tloha ketsahalong e le 'ngoe, joale ho launch_configuration ha ho na mohopolo oa "provisioner". Ho na le mohopolo oa "data ea mosebelisi".

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ka hona, tharollo ea bokahohleng haholoanyane ke ho sebelisa data ea mosebelisi. 'Me e tla hlahisoa ka mohlala ka boeona, ha mohlala o buletsoe, kapa ho data e tšoanang ea mosebedisi, ha sehlopha sa autoscaling se sebelisa launch_configuration.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Haeba u ntse u batla ho tsamaisa mofani, hobane ke karolo ea gluing, ha mohloli o le mong o thehoa, ka nako eo o hloka ho tsamaisa mofani oa hau, taelo ea hau. Ho na le maemo a joalo a mangata.

'Me mohloli o nepahetseng ka ho fetisisa oa sena o bitsoa null_resource. Null_resource ke sesebelisoa sa dummy se sa kang sa etsoa. Ha e ame letho, ha ho API, ha ho autoscaling. Empa e u lumella ho laola nako ea ho tsamaisa taelo. Tabeng ena, taelo e tsamaisoa nakong ea pōpo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

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

Ho na le matšoao a 'maloa. Nke ke ka kena lipontšong tsohle ka botlalo. Ho na le sehlooho se buang ka sena. Empa haeba u sebelitse le Terraform kapa u sebelisa li-module tsa batho ba bang, joale u hlokometse hangata hore li-module tse ngata, joalo ka boholo ba khoutu mohloling o bulehileng, li ngotsoe ke batho bakeng sa litlhoko tsa bona. Monna e mong o ile a e ngola ’me a rarolla bothata ba hae. Ke e khomaretse ho GitHub, e tlohele e phele. E tla phela, empa haeba ho se na litokomane le mehlala moo, ha ho motho ea tla e sebelisa. 'Me haeba ho se na ts'ebetso e u lumellang hore u rarolle ho feta mosebetsi oa eona o khethehileng, ha ho motho ea tla e sebelisa. Ho na le mekhoa e mengata ea ho lahleheloa ke basebelisi.

Haeba u batla ho ngola ntho e le hore batho ba e sebelise, joale ke khothaletsa ho latela matšoao ana.

Sena ke:

  • Litokomane le mehlala.
  • Tshebetso e feletseng.
  • Mekhahlelo e utloahalang.
  • Hloekileng khoutu.
  • Liteko.

Liteko ke boemo bo fapaneng hobane ho thata ho ngola. Ke lumela ho feta litokomaneng le mehlala.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Kahoo, re ile ra sheba mokhoa oa ho ngola li-module. Ho na le likhang tse peli. Ea pele, e leng ea bohlokoa ka ho fetisisa, ha se ho ngola haeba u khona, hobane sehlopha sa batho se se se entse mesebetsi ena pele ho uena. 'Me ea bobeli, haeba u ntse u etsa qeto, leka ho se sebelise bafani ba li-module le bafani.

Ena ke karolo e putsoa ea litokomane. Mohlomong joale u ntse u nahana: “Ho na le ntho e sa hlakang. Ha kea kholoa." Empa re tla bona ka mor'a likhoeli tse tšeletseng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Joale ha re bue ka mokhoa oa ho bitsa li-module tsena.

Rea utloisisa hore khoutu ea rona e ntse e hola ka nako. Ha re sa na faele e le 'ngoe, re se re na le lifaele tse 20. Kaofela li foldareng e le 'ngoe. Kapa mohlomong ka lifoldara tse hlano. Mohlomong re qala ka tsela e itseng ho li senya ka libaka, ka likarolo tse ling. Joale re utloisisa hore hona joale re na le li-rudiments tsa ho lumellana le 'mino oa liletsa. Ke hore, re tlameha ho utloisisa seo re lokelang ho se etsa ha re fetola lisebelisoa tsa marang-rang, hore na re lokela ho etsa eng ka lisebelisoa tse ling tsa rona, hore na re ka baka joang li- dependency tsena, joalo-joalo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ho na le tse peli tse feteletseng. Ntho ea pele e fetelletseng kaofela ke ntho e le 'ngoe. Re na le faele e le 'ngoe e kholo. Hajoale, ena e ne e le tloaelo e ntle ka ho fetesisa ho webosaete ea Terraform.

Empa joale e ngotsoe e le deprecated le tlosoa. Ha nako e ntse e ea, sechaba sa Terraform se ile sa hlokomela hore sena se ne se le hōle le mokhoa o molemo ka ho fetisisa, hobane batho ba ile ba qala ho sebelisa morero ka litsela tse sa tšoaneng. Mme ho na le mathata. Mohlala, ha re thathamisa litšepe tsohle sebakeng se le seng. Ho na le maemo ha re tobetsa "Leano la Terraform" mme ho fihlela Terraform e ntlafatsa linaha tsa lisebelisoa tsohle, nako e ngata e ka feta.

Nako e ngata ke, mohlala, metsotso e 5. Ho ba bang sena ke nako e ngata. Ke bone linyeoe moo ho nkileng metsotso e 15. AWS API e qetile metsotso e 15 e leka ho fumana hore na ho etsahalang ka boemo ba mohloli o mong le o mong. Ena ke sebaka se seholo haholo.

'Me, ka tlhaho, bothata bo amanang le bona bo tla hlaha ha u batla ho fetola ntho e le' ngoe sebakeng se le seng, ebe u emela metsotso e 15, 'me e u fa lesela la liphetoho tse ling. U ile ua tšoela mathe, ua ngola "E", 'me ho na le ntho e sa tsamaeeng hantle. Ona ke mohlala oa sebele. Terraform ha e leke ho u sireletsa mathateng. Ke hore, ngola seo u se batlang. Ho tla ba le mathata - mathata a hau. Le ha Terraform 0.11 e sa leke ho u thusa ka tsela efe kapa efe. Ho na le libaka tse ling tse thahasellisang ho 0.12 tse u lumellang hore u re: "Vasya, u hlile u batla sena, na u ka hlaphoheloa kelellong?"

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Tsela ea bobeli ke ho fokotsa sebaka sena, ke hore, mehala e tsoang sebakeng se le seng e ka fokotsoa ho tloha sebakeng se seng.

Bothata feela ke hore o hloka ho ngola khoutu e eketsehileng, ke hore, o hloka ho hlalosa mefuta e mengata ea lifaele le ho ntlafatsa sena. Batho ba bang ha ba e rate. Sena se tloaelehile ho 'na. Mme batho ba bang ba nahana: "Hobaneng ho ngola sena libakeng tse fapaneng, ke tla se beha kaofela sebakeng se le seng." Sena sea khoneha, empa sena ke sa bobeli se feteletseng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ke mang ea nang le see sohle se phelang sebakeng se le seng? Motho a le mong, ba babeli, ba bararo, ke hore, ho na le motho ea e sebelisang.

Mme ke mang ea bitsang karolo e itseng, boloko e le 'ngoe kapa mojule o le mong oa litšebeletso? Batho ba bahlano ho isa ho ba supileng. Sena se monate.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Karabo e tloaelehileng haholo e kae-kae bohareng. Haeba morero o le moholo, joale hangata o tla ba le boemo boo ho seng tharollo e loketseng 'me ha se ntho e' ngoe le e 'ngoe e sebetsang moo, kahoo u qetella u e-na le motsoako. Ha ho letho le phoso ka sena, hafeela u utloisisa hore bobeli bo na le melemo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Haeba ho na le ho hong ho fetohileng VPC ea stack mme o batla ho sebelisa liphetoho tsena ho EC2, ke hore, o ne o batla ho nchafatsa sehlopha sa autoscaling hobane o ne o e-na le subnet e ncha, joale ke bitsa mofuta ona oa 'mino oa ho itšetleha. Ho na le litharollo tse ling: ke mang ea sebelisang eng?

Nka fana ka maikutlo a hore na ho na le litharollo life. U ka sebelisa Terraform ho etsa boloi, kapa u ka sebelisa li-makefiles ho sebelisa Terraform. Mme o bone haeba ho na le ntho e fetohileng moo, o ka e thakgola mona.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

U rata qeto ee joang? Na ho na le motho ea lumelang hore ena ke tharollo e ntle? Ke bona pososelo, ho bonahala lipelaelo li kene ka hare.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ehlile, u se ke ua leka sena lapeng. Terraform ha ho mohla e etselitsoeng ho tsamaisoa ho tloha Terraform.

Tlalehong e ’ngoe ba ile ba mpolella: “Che, sena se ke ke sa sebetsa.” Taba ke hore ha ea lokela ho sebetsa. Leha e shebahala e khahla haholo ha o ka qala Terraform ho tloha Terraform, ebe Terraform, ha oa lokela ho etsa joalo. Terraform e lokela ho qala kamehla habonolo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

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

Haeba o hloka 'mino oa liletsa ha ho na le ntho e fetohileng sebakeng se le seng, joale ho na le Terragrunt.

Terragrunt ke thuso, keketso ho Terraform, e u lumellang ho hokahanya le ho hlophisa mehala ho li-module tsa meaho.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Faele e tloaelehileng ea tlhophiso ea Terraform e shebahala tjena.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

O bolela hore na o batla ho letsetsa mojule ofe.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mojule o itšetlehile ka eng?

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mme mojulu ona o amohela mabaka afe. Ke sona feela seo u lokelang ho se tseba ka Terragrunt.

Litokomane li teng, 'me ho na le linaleli tse 1 ho GitHub. Empa maemong a mangata sena ke seo u hlokang ho se tseba. 'Me sena se bonolo haholo ho se sebelisa lik'hamphani tse qalang ho sebetsa le Terraform.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Kahoo 'mino oa liletsa ke Terragrunt. Ho na le likhetho tse ling.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Joale a re ke re bue ka mokhoa oa ho sebetsa le khoutu.

Haeba o hloka ho kenya likarolo tse ncha khoutu ea hau, hangata sena se bonolo. U ngola mohloli o mocha, ntho e 'ngoe le e' ngoe e bonolo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Haeba u na le lisebelisoa tseo u li entseng esale pele, ka mohlala, u ithutile ka Terraform ka mor'a hore u bule akhaonto ea AWS 'me u batle ho sebelisa lisebelisoa tseo u seng u ntse u e-na le tsona, joale ho tla ba ho loketseng ho atolosa module ea hau ka tsela ena, e tšehetsa tšebeliso ea lisebelisoa tse teng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Le ho tšehetsa ho thehoa ha lisebelisoa tse ncha ho sebelisa mohloli oa thibela.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ka tlhahiso re lula re khutlisetsa id ea tlhahiso ho latela se sebelisitsoeng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Bothata ba bobeli bo bohlokoa haholo ho Terraform 0.11 ke ho sebetsa ka manane.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Bothata ke hore haeba re na le lenane le joalo la basebelisi.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me ha re bōpa basebelisi bana ba sebelisa li-block resource, joale ntho e' ngoe le e 'ngoe e tsamaea hantle. Re feta lethathamong lohle, re etsa faele bakeng sa e mong le e mong. Tsohle di lokile. 'Me joale, ka mohlala, user3, ea leng bohareng, o lokela ho tlosoa mona, joale lisebelisoa tsohle tse entsoeng ka mor'a hae li tla tsosolosoa hobane index e tla fetoha.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ho sebetsa ka manane sebakeng se setle. Tikoloho e ntle ke eng? Ena ke boemo boo boleng bo bocha bo bōpiloeng ha mohloli ona o bōptjoa. Ka mohlala, AWS Access Key kapa AWS Secret Key, ke hore ha re theha mosebedisi, re fumana Access e ncha kapa Key Key. 'Me nako le nako ha re hlakola mosebelisi, mosebelisi enoa o tla ba le senotlolo se secha. Empa sena ha se feng shui, hobane mosebelisi a ke ke a batla ho ba metsoalle le rona haeba re mo etsetsa mosebelisi e mocha nako le nako ha motho a tsoa sehlopheng.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ena ke tharollo. Ena ke khoutu e ngotsoeng ho Jsonnet. Jsonnet ke puo ea meralo e tsoang ho Google.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Taelo ena e u lumella ho amohela template ena mme e le tlhahiso e khutlisa faele ea json e entsoeng ho latela template ea hau.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Template e shebahala tjena.

Terraform e u lumella ho sebetsa le HCL le Json ka tsela e ts'oanang, kahoo haeba u na le bokhoni ba ho hlahisa Json, u ka e thellela ho Terraform. Faele e nang le katoloso ea .tf.json e tla kopitsoa ka katleho.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ebe re sebetsa le eona joalo ka tloaelo: terraform init, terramorm e sebetsa. 'Me re theha basebelisi ba babeli.

Hona joale ha re tšabe haeba motho a ka tloha sehlopheng. Re tla fetola faele ea json feela. Vasya Pupkin o ile a tloha, Petya Pyatochkin a sala. Petya Pyatochkin a ke ke a fumana senotlolo se secha.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ho kopanya Terraform le lisebelisoa tse ling ha se mosebetsi oa Terraform. Terraform e entsoe e le sethala sa ho theha lisebelisoa, 'me ke phetho. 'Me ntho e' ngoe le e 'ngoe e hlahang hamorao ha se taba ea Terraform. 'Me ha ho hlokahale ho e loha ka mono. Ho na le Ansible, e etsang tsohle tseo o li hlokang.

Empa maemo a hlaha ha re batla ho atolosa Terraform le ho bitsa taelo e itseng ka mor'a hore ntho e itseng e phethe.

Tsela ea pele. Re etsa tlhahiso moo re ngolang taelo ena.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

'Me joale re bitsa taelo ena ho tsoa ho shell terraform output ebe re bolela boleng boo re bo batlang. Kahoo, taelo e phethisoa ka litekanyetso tsohle tse nketsoeng sebaka. E phutholohile haholo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Tsela ea bobeli. Ena ke ts'ebeliso ea null_resource ho ipapisitse le liphetoho lits'ebetsong tsa rona. Re ka bitsa e tšoanang ea lehae-exe hang ha ID ea lisebelisoa tse ling e fetoha.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ka tlhaho, sena sohle se boreleli pampiring, hobane Amazon, joalo ka bafani ba bang bohle ba sechaba, e na le letoto la linyeoe tsa eona.

Nyeoe e tloaelehileng ka ho fetesisa ke hore ha u bula ak'haonte ea AWS, ho bohlokoa hore na u sebelisa libaka life; na tšobotsi ena e nolofalitsoe moo; mohlomong u ile ua e bula ka mor'a December 2013; mohlomong u sebelisa kamehla ho VPC joalo-joalo Ho na le lithibelo tse ngata. 'Me Amazon e ile ea li hasanya ho pholletsa le litokomane.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Ho na le lintho tse 'maloa tseo ke khothaletsang ho li qoba.

Ho qala, qoba likhang tsohle tseo e seng tsa lekunutu ka har'a moralo oa Terraform kapa Terraform CLI. Tsena tsohle li ka kenngoa faeleng ea tfvars kapa sebakeng se fapaneng sa tikoloho.

Empa ha ho hlokahale hore u hopole taelo ena eohle ea boselamose. Moralo oa Terraform - var mme rea tsamaea. Phapang ea pele ke var, ea bobeli ke var, ea boraro, ea bone. Molao-motheo oa bohlokoa ka ho fetisisa oa mekhoa ea motheo e le khoutu eo ke e sebelisang hangata ke hore feela ka ho sheba khoutu, ke lokela ho ba le kutloisiso e hlakileng ea hore na ho sebelisoa eng moo, boemong bofe le ka litekanyetso life. 'Me kahoo ha ho hlokahale hore ke bale litokomane kapa ke botse Vasya hore na ke litekanyo life tseo a li sebelisitseng ho theha sehlopha sa rona. Ke hloka feela ho bula faele ka katoloso ea tfvars, eo hangata e lumellanang le tikoloho, 'me u shebe ntho e ngoe le e ngoe moo.

Hape, u se ke ua sebelisa likhang tse reretsoeng ho fokotsa boholo. Bakeng sa sena ho bonolo haholo ho sebelisa li-modules tse nyenyane tsa lisebelisoa.

Hape, ha ho hlokahale ho fokotsa le ho eketsa ho bapisa. Haeba ke na le lisebelisoa tsa 150 'me ke batla ho eketsa Amazon parallelism ho tloha ho 10 ho ea ho 100, joale ho ka etsahala hore ho na le ho hong ho tla fosahetse. Kapa e kanna ea tsamaea hantle hona joale, empa ha Amazon e re o etsa mehala e mengata haholo, o tla ba mathateng.

Terraform e tla leka ho qala boholo ba mathata ana, empa u ke ke ua fihlela letho. Parallelism = 1 ke ntho ea bohlokoa eo u ka e sebelisang haeba u khoptjoa ke kokoanyana ka hare ho AWS API kapa ka hare ho mofani oa Terraform. Ebe o hloka ho hlakisa: parallelism=1 ebe o emela ho fihlela Terraform e qeta mohala o le mong, ebe oa bobeli, ebe oa boraro. O tla di thakgola ka bonngwe.

Hangata batho ba mpotsa, "Hobaneng ke nahana hore libaka tsa mosebetsi tsa Terraform li khopo?" Ke lumela hore molao-motheo oa mekhoa ea motheo e le khoutu ke ho bona hore na ho entsoe lisebelisoa life le hore na ke litekanyetso life.

Libaka tsa mesebetsi ha lia etsoa ke basebelisi. Sena ha se bolele hore basebelisi ba ngotse litabeng tsa GitHub hore re ke ke ra phela ntle le libaka tsa mosebetsi tsa Terraform. Che ha ho joalo. Terraform Enterprise ke tharollo ea khoebo. Terraform e tsoang HashiCorp e nkile qeto ea hore re hloka libaka tsa ho sebetsa, kahoo re ile ra e hlakola. Ke fumana ho le bonolo haholo ho e beha foldareng e fapaneng. Joale ho tla ba le lifaele tse ling tse nyane, empa li tla hlaka haholoanyane.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Mokhoa oa ho sebetsa le khoutu? Ha e le hantle, ho sebetsa ka manane ke eona feela bohloko. 'Me u nke Terraform habonolo. Sena ha se ntho e tla u etsetsa tsohle tse ntle. Ha ho na lebaka la ho sututsa ntho e 'ngoe le e 'ngoe e ngotsoeng litokomaneng moo.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Sehlooho sa tlaleho se ne se ngotsoe "bakeng sa bokamoso." Ke tla bua ka taba ena hakhutšoanyane haholo. Bakeng sa bokamoso, sena se bolela hore 0.12 e tla lokolloa haufinyane.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

0.12 ke lithane tse ngata tse ncha. Haeba u tsoa lenaneong le tloaelehileng, joale u hloloheloa mefuta eohle ea li-blocks tse matla, li-loops, ts'ebetso ea papiso e nepahetseng le e nang le maemo, moo mahlakore a letšehali le a nepahetseng a sa baloeng ka nako e le 'ngoe, empa ho itšetlehile ka boemo. U e hloloheloa haholo, kahoo 0.12 e tla u rarollela eona.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Empa! Haeba u ngola ka mokhoa o bonolo le ho feta, u sebelisa li-modules tse lokiselitsoeng le litharollo tsa motho oa boraro, joale ha ho hlokahale hore u eme 'me u tšepe hore 0.12 e tla tla le ho u lokisetsa ntho e' ngoe le e 'ngoe.

Tlhaloso ea lisebelisoa tsa motheo tsa Terraform bakeng sa bokamoso. Anton Babenko (2018)

Re leboha tlaleho! U buile ka meaho ea motheo e le khoutu 'me u bua lentsoe le le leng ka liteko. Na litlhahlobo lia hlokahala ho li-module? Boikarabelo boo ke ba mang? Na ke hloka ho e ngola kapa ke boikarabello ba li-module?

Selemong se tlang ho tla tlala litlaleho tsa hore re nkile qeto ea ho leka tsohle. Seo u lokelang ho se hlahloba ke potso e kholo ka ho fetisisa. Ho na le litšepe tse ngata, lithibelo tse ngata tse tsoang ho bafani ba fapaneng. Ha ’na le uena re ntse re buisana ’me u re: “Ke hloka liteko,” joale kea botsa: “U tla leka eng?” U re u tla etsa liteko sebakeng sa heno. Joale ke re taba ena ha e sebetse sebakeng sa heso. Ke hore, re ke ke ra khona le ho lumellana ka taba ena. Re sa bue ka hore ho na le mathata a mangata a tekheniki. Ke hore, mokhoa oa ho ngola liteko tsena e le hore li lekane.

Ke ntse ke etsa lipatlisiso ka sehlooho sena, ke hore, mokhoa oa ho iketsetsa liteko ho ipapisitsoe le lisebelisoa tseo u li ngotseng. Ke hore, haeba u ngotse khoutu ena, joale ke hloka ho e tsamaisa, ho latela sena nka etsa liteko.

Terrates ke e 'ngoe ea lilaebrari tse boletsoeng khafetsa tse u lumellang ho ngola liteko tsa ho kopanya bakeng sa Terraform. Ena ke e 'ngoe ea lisebelisoa. Ke khetha mofuta oa DSL, mohlala, rspec.

Anton, kea leboha ka tlaleho! Lebitso la ka ke Valery. E-re ke botse potso e nyenyane ea filosofi. Ho na le, ka maemo, ho fana, ho na le deployment. Ho fana ho theha meaho ea ka, ha ho tsamaisoa re e tlatsa ka ho hong ho bohlokoa, mohlala, li-server, lits'ebetso, joalo-joalo. 'Me ke hloohong ea ka hore Terraform ke ea ho fana,' me Ansible ke ea ho romelloa, hobane Ansible le eona ke ea 'mele. e u lumella ho kenya nginx, Postgres. Empa ka nako e ts'oanang, Ansible e bonahala e lumella ho fana, ka mohlala, lisebelisoa tsa Amazon kapa Google. Empa Terraform e boetse e u lumella ho tsamaisa software u sebelisa li-module tsa eona. Ho ea ka pono ea hau, na ho na le moeli oa mofuta o pakeng tsa Terraform le Ansible, hokae le ho molemo ho sebelisa eng? Kapa, ​​​​ka mohlala, na u nahana hore Ansible e se e ntse e le litšila, u lokela ho leka ho sebelisa Terraform bakeng sa ntho e 'ngoe le e' ngoe?

Potso e ntle, Valery. Ke lumela hore Terraform ha e so fetohe ho latela sepheo ho tloha ka 2014. E bōpiloe bakeng sa lisebelisoa tsa motheo 'me e shoele bakeng sa mekhoa ea motheo. Re ne re ntse re na le tlhoko ea tsamaiso ea tlhophiso Ansible. Phephetso ke hore ho na le data ea mosebelisi kahare ho launch_configuration. 'Me moo u hula Ansible, joalo-joalo Ena ke phapang e tloaelehileng eo ke e ratang ka ho fetisisa.

Haeba re bua ka meaho e metle, joale ho na le lisebelisoa tse kang Packer tse bokellang setšoantšo sena. Ebe Terraform e sebelisa mohloli oa data ho fumana setšoantšo sena le ho ntlafatsa launch_configuration. Ke hore ka tsela ena pipeline ke hore re qala re hula Tracker, ebe re hula Terraform. 'Me haeba mohaho o etsahala, joale phetoho e ncha e etsahala.

Lumela! Re leboha tlaleho! Lebitso la ka ke Misha, k'hamphani ea RBS. O ka letsetsa Ansible ka provider ha o theha sesebelisoa. Ansible e boetse e na le sehlooho se bitsoang dynamic inventory. Mme o ka qala ho letsetsa Terraform, ebe o letsetsa Ansible, e tla nka lisebelisoa ho tsoa mmusong ebe e e phetha. Ke eng e molemo?

Batho ba sebelisa bobeli ka katleho e lekanang. Ho 'na ho bonahala eka thepa e matla ho Ansible ke ntho e bonolo, haeba re sa bue ka sehlopha sa autoscaling. Hobane sehlopheng sa autoscaling re se re ntse re e-na le lisebelisoa tsa rona, tse bitsoang launch_configuration. Ho launch_configuration re tlaleha ntho e 'ngoe le e' ngoe e hlokang ho qalisoa ha re theha mohloli o mocha. Ka hona, ka Amazon, ho sebelisa lethathamo le matla le ho bala faele ea Terraform ts, ka maikutlo a ka, ho feta tekano. 'Me haeba u sebelisa lisebelisoa tse ling moo ho se nang maikutlo a "autoscaling sehlopha", mohlala, u sebelisa DigitalOcean kapa mofani e mong moo ho se nang sehlopha sa autoscaling, joale u tla tlameha ho hula API ka letsoho, u fumane liaterese tsa IP, u thehe. a dynamic inventory file , 'me Ansible e se e ntse e lelera ho eona. Ke hore, bakeng sa Amazon ho na le launch_configuration, 'me bakeng sa ntho e' ngoe le e 'ngoe ho na le lethathamo le matla.

Source: www.habr.com

Eketsa ka tlhaloso