Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Anthu ambiri amadziwa ndikugwiritsa ntchito Terraform pantchito yawo yatsiku ndi tsiku, koma njira zabwino zake sizinapangidwebe. Gulu lirilonse liyenera kupanga njira zake ndi njira zake.

Zomangamanga zanu pafupifupi zimayamba mophweka: zida zochepa + omanga ochepa. Pakapita nthawi, imakula m'njira zosiyanasiyana. Kodi mumapeza njira zophatikizira zothandizira kukhala ma module a Terraform, kukonza ma code kukhala mafoda, ndi zina ziti zomwe zingasokonekera? (mawu omaliza otchuka)

Nthawi ikupita ndipo mumamva ngati maziko anu ndi chiweto chanu chatsopano, koma chifukwa chiyani? Mukuda nkhawa ndi kusintha kosadziwika bwino kwa zomangamanga, mukuwopa kukhudza zomangamanga ndi ma code - chifukwa chake, mumachedwetsa ntchito zatsopano kapena kuchepetsa khalidwe ...

Pambuyo pa zaka zitatu zoyang'anira mndandanda wa ma modules ammudzi a Terraform kwa AWS pa Github ndi kukonza kwa Terraform kwa nthawi yaitali pakupanga, Anton Babenko ali wokonzeka kugawana zomwe adakumana nazo: momwe angalembere ma module a TF kuti asapweteke m'tsogolomu.

Pamapeto pa nkhaniyo, otenga nawo mbali azidziwa bwino mfundo zoyendetsera zinthu mu Terraform, njira zabwino zogwirizanirana ndi ma module a Terraform, ndi mfundo zina zophatikizana mosalekeza zokhudzana ndi kasamalidwe ka zomangamanga.

Chodzikanira: Ndikuwona kuti lipoti ili la Novembala 2018-zaka 2 zadutsa kale. Mtundu wa Terraform 0.11 womwe wafotokozedwa mu lipotilo sunathandizidwenso. Pazaka 2 zapitazi, zatsopano za 2 zatulutsidwa, zomwe zili ndi zatsopano zambiri, zosintha ndi kusintha. Chonde tcherani khutu ku izi ndikuwona zolembazo.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Zolemba:

Dzina langa ndine Anton Babenko. Ena a inu mwina munagwiritsa ntchito code yomwe ndinalemba. Tsopano ndilankhula za izi molimba mtima kuposa kale, chifukwa ndili ndi mwayi wopeza ziwerengero.

Ndimagwira ntchito pa Terraform ndipo ndakhala ndikuchita nawo nawo mbali komanso kuthandizira pama projekiti ambiri otseguka okhudzana ndi Terraform ndi Amazon kuyambira 2015.

Kuyambira pamenepo ndalemba kachidindo kokwanira kuti ndiyike m'njira yosangalatsa. Ndipo ndiyesera kukuuzani za izi tsopano.

Ndilankhula za zovuta komanso zenizeni zogwirira ntchito ndi Terraform. Koma si nkhani ya HighLoad. Ndipo tsopano mumvetsetsa chifukwa chake.

Patapita nthawi, ndinayamba kulemba Terraform modules. Ogwiritsa adalemba mafunso, ndidawalembanso. Kenako ndidalemba zida zosiyanasiyana kuti ndipange kachidindo pogwiritsa ntchito mbedza ya pre-commit, ndi zina.

Panali ntchito zambiri zosangalatsa. Ndimakonda kupanga ma code chifukwa ndimakonda kompyuta kuti igwire ntchito zambiri kwa ine ndi wopanga mapulogalamu, kotero ndikugwira ntchito pa Terraform code generator kuchokera pazithunzi. Mwina ena mwa inu munawaonapo. Awa ndi mabokosi okongola okhala ndi mivi. Ndipo ndikuganiza ndizabwino ngati mutha kudina batani la "Export" ndikupeza zonse ngati ma code.

Ndimachokera ku Ukraine. Ndakhala ku Norway kwa zaka zambiri.

Komanso zambiri za lipotili zidatengedwa kuchokera kwa anthu omwe amadziwa dzina langa ndikundipeza pamasamba ochezera. Pafupifupi nthawi zonse ndimakhala ndi dzina lomweli.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

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

Monga ndanenera, ndine woyang'anira ma module a Terraform AWS, yomwe ndi imodzi mwazosungirako zazikulu kwambiri pa GitHub kumene timakhala ndi ma modules a ntchito zofala kwambiri: VPC, Autoscaling, RDS.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo zomwe mwamva tsopano ndizofunika kwambiri. Ngati mukukayikira kuti mukumvetsa zomwe Terraform ili, ndiye kuti ndi bwino kugwiritsa ntchito nthawi yanu kwina. Padzakhala mawu ambiri aukadaulo apa. Ndipo sindinazengereze kulengeza kuti mulingo wa lipotilo ndi wapamwamba kwambiri. Izi zikutanthauza kuti nditha kuyankhula pogwiritsa ntchito mawu onse otheka popanda kufotokoza zambiri.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Terraform idawonekera mu 2014 ngati chida chomwe chimakulolani kuti mulembe, kukonzekera ndikuwongolera zomangamanga monga ma code. Lingaliro lofunikira apa ndi "infrastructure as code."

Zolemba zonse, monga ndanenera, zalembedwamo terraform.io. Ndikukhulupirira kuti anthu ambiri akudziwa za tsamba ili ndipo awerenga zolembedwa. Ngati ndi choncho, ndiye kuti muli pamalo oyenera.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Izi ndi zomwe fayilo yokhazikika ya Terraform imawonekera, pomwe timafotokozera zosintha zina.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Pachifukwa ichi timatanthauzira "aws_region".

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kenako timafotokozera zomwe tikufuna kupanga.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Timayendetsa malamulo, makamaka "terraform init" kuti tiyike zodalira ndi othandizira.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo timayendetsa lamulo la "terraform apply" kuti tiwone ngati kasinthidwe kameneka kamafanana ndi zomwe tidapanga. Popeza sitinapangepo kalikonse, Terraform imatilimbikitsa kupanga zinthuzi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Timatsimikizira izi. Chifukwa chake timapanga chidebe chotchedwa seasnail.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Palinso zida zingapo zofanana. Ambiri a inu omwe mumagwiritsa ntchito Amazon mukudziwa AWS CloudFormation kapena Google Cloud Deployment Manager kapena Azure Resource Manager. Aliyense wa iwo ali ndi kukhazikitsa kwake kwamtundu wina pakuwongolera zothandizira mkati mwa aliyense wa omwe amapereka mitambo yapagulu. Terraform ndiyothandiza makamaka chifukwa imakupatsani mwayi wowongolera opitilira 100. (Zambiri apa)

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Zolinga zomwe Terraform adatsata kuyambira pachiyambi:

  • Terraform imapereka mawonekedwe amodzi azinthu.
  • Imakulolani kuti muthandizire nsanja zonse zamakono.
  • Ndipo Terraform idapangidwa kuyambira pachiyambi ngati chida chomwe chimakulolani kuti musinthe zomangamanga mosamala komanso modziwikiratu.

Mu 2014, mawu oti "zoneneratu" adamveka zachilendo kwambiri pankhaniyi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Terraform ndi ntchito yapadziko lonse lapansi. Ngati muli ndi API, ndiye kuti mutha kuwongolera chilichonse:

  • Mutha kugwiritsa ntchito operekera oposa 120 kuti musamalire chilichonse chomwe mukufuna.
  • Mwachitsanzo, mutha kugwiritsa ntchito Terraform pofotokoza zofikira ku GitHub repositories.
  • Mutha kupanga ndikutseka nsikidzi ku Jira.
  • Mutha kuyang'anira New Relic metrics.
  • Mutha kupanga mafayilo mu dropbox ngati mukufunadi.

Izi zonse zimatheka pogwiritsa ntchito opereka Terraform, omwe ali ndi API yotseguka yomwe imatha kufotokozedwa mu Go.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tiyerekeze kuti tinayamba kugwiritsa ntchito Terraform, kuwerenga zolembedwa patsamba, kuwonera kanema, ndikuyamba kulemba main.tf, monga ndidawonetsera pazithunzi zam'mbuyomu.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo zonse ndizabwino, muli ndi fayilo yomwe imapanga VPC.

Ngati mukufuna kupanga VPC, ndiye kuti mumatchula pafupifupi mizere 12 iyi. Fotokozani dera lomwe mukufuna kupanga, ndi cidr_block ya ma adilesi a IP oti mugwiritse ntchito. Ndizomwezo.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mwachibadwa, ntchitoyi idzakula pang'onopang'ono.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo mudzakhala mukuwonjezera zinthu zatsopano kumeneko: zothandizira, magwero a deta, mudzaphatikizana ndi opereka atsopano, mwadzidzidzi mudzafuna kugwiritsa ntchito Terraform kuyang'anira ogwiritsa ntchito mu akaunti yanu ya GitHub, ndi zina. Othandizira a DNS, kuwoloka chilichonse. Terraform imapangitsa izi kukhala zosavuta.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tiyeni tione chitsanzo chotsatirachi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mukuwonjezera pang'onopang'ono intaneti_gateway chifukwa mukufuna zothandizira kuchokera ku VPC yanu kuti mukhale ndi intaneti. Ili ndi lingaliro labwino.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Zotsatira zake ndi izi main.tf:

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ili ndiye gawo lapamwamba la main.tf.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ili ndiye gawo la pansi la main.tf.

Ndiye inu kuwonjezera subnet. Podzafika nthawi yomwe mukufuna kuwonjezera zipata za NAT, mayendedwe, matebulo owongolera ndi gulu la ma subnets ena, simudzakhala ndi mizere 38, koma mizere pafupifupi 200-300.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndiye kuti, fayilo yanu ya main.tf ikukula pang'onopang'ono. Ndipo nthawi zambiri anthu amaika chilichonse mufayilo imodzi. 10-20 KB imawonekera main.tf. Tangoganizani kuti 10-20 KB ndi zolemba. Ndipo chirichonse chikugwirizana ndi chirichonse. Izi pang'onopang'ono zimakhala zovuta kugwira ntchito. 10-20 KB ndi njira yabwino yogwiritsira ntchito, nthawi zina zambiri. Ndipo anthu nthawi zonse amaganiza kuti izi ndi zoipa.

Monga mumapulogalamu anthawi zonse, i.e. osati zomangamanga monga ma code, timazolowera kugwiritsa ntchito magulu osiyanasiyana, maphukusi, ma module, magulu. Terraform imakulolani kuti muchite zomwezo.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

  • Code ikukula.
  • Kudalirana pakati pa zothandizira kukukulanso.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo ife tiri nacho chosowa chachikulu, chachikulu. Timadziwa kuti sitingakhalenso moyo wotero. Code yathu ikukhala yayikulu. 10-20 KB, ndithudi, si yaikulu kwambiri, koma tikukamba za stack network, i.e. mwangowonjezera zothandizira maukonde. Sitikulankhula za Application Load Balancer, gulu la ES lotumiza, Kubernetes, ndi zina zambiri, pomwe 100 KB imatha kuluka mosavuta. Mukalemba zonsezi, mudzazindikira posachedwa kuti Terraform imapereka ma module a Terraform.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ma module a Terraform ndi kasinthidwe ka Terraform komwe kumayendetsedwa ngati gulu. Ndizo zonse zomwe muyenera kudziwa za Terraform modules. Iwo sali anzeru konse, samakulolani kuti mupange kulumikizana kovutirapo kutengera china chake. Izi zonse zimagwera pamapewa a opanga. Ndiye kuti, uwu ndi mtundu wina wa kasinthidwe ka Terraform komwe mudalemba kale. Ndipo mukhoza kungoyitcha ngati gulu.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chifukwa chake tikuyesera kumvetsetsa momwe tingakwaniritsire ma code 10-20-30 KB. Pang'onopang'ono tikuzindikira kuti tiyenera kugwiritsa ntchito ma module.

Mtundu woyamba wa ma module omwe mumakumana nawo ndi ma module othandizira. Samvetsetsa zomwe maziko anu ali, zomwe bizinesi yanu ikunena, komwe ndi momwe zilili. Awa ndi ma module omwe ine, pamodzi ndi gulu lotseguka, ndimayang'anira, ndi zomwe timayika ngati zomangira zoyambira zanu.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chitsanzo cha module zothandizira.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tikatchula gawo lachidziwitso, timatchula njira yomwe tiyenera kuyika zomwe zili mkati mwake.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tikuwonetsa mtundu womwe tikufuna kutsitsa.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Timadutsa mikangano yambiri kumeneko. Ndizomwezo. Ndizo zonse zomwe tiyenera kudziwa tikamagwiritsa ntchito gawoli.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Anthu ambiri amaganiza kuti akagwiritsa ntchito Baibulo laposachedwa, zonse zikhala bwino. Koma ayi. Zomangamanga ziyenera kusinthidwa; tiyenera kuyankha momveka bwino kuti iyi kapena gawo lija latumizidwako.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Nayi code yomwe ili mkati mwa gawoli. Module ya gulu lachitetezo. Apa mpukutu ukupita ku mzere wa 640. Kupanga gwero lachitetezo ku Amazon pakusintha kulikonse kotheka ndi ntchito yosakhala yachidule. Sikokwanira kungopanga gulu lachitetezo ndikuuza malamulo oti apereke kwa iwo. Zingakhale zophweka kwambiri. Pali zoletsa miliyoni miliyoni mkati mwa Amazon. Mwachitsanzo, ngati mugwiritsa ntchito VPC endpoint, prefix list, ma API osiyanasiyana ndikuyesa kuphatikiza zonsezi ndi china chilichonse, ndiye Terraform samakulolani kuchita izi. Ndipo Amazon API sichilola izi. Chifukwa chake, tiyenera kubisa malingaliro oyipa onsewa mu gawo ndikupereka nambala ya ogwiritsa ntchito yomwe ikuwoneka motere.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Wogwiritsa safunikira kudziwa momwe amapangidwira mkati.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mtundu wachiwiri wa ma module, omwe ali ndi ma module othandizira, amathetsa kale mavuto omwe amagwira ntchito kwambiri pabizinesi yanu. Nthawi zambiri awa ndi malo omwe ndi owonjezera a Terraform ndipo amakhazikitsa mfundo zolimba zama tag, pamiyezo yamakampani. Mutha kuwonjezera magwiridwe antchito pamenepo omwe Terraform sakulolani kuti mugwiritse ntchito. Izi ndi pompano. Tsopano mtundu 0.11, womwe uli pafupi kukhala chinthu chakale. Komabe, preprocessors, jsonnet, cookiecutter ndi mulu wa zinthu zina ndi njira zothandizira zomwe ziyenera kugwiritsidwa ntchito pantchito yonse.

Kenako ndikuwonetsa zitsanzo za izi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Module ya zomangamanga imatchedwa chimodzimodzi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kochokera komwe mungatsitse zomwe zili mkati mwawonetsedwa.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Zambiri zamakhalidwe zimaperekedwa ndikuperekedwa mugawoli.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kenaka, mkati mwa gawoli, ma modules ambiri amaitanidwa kuti apange VPC kapena Application Load Balancer, kapena kupanga gulu lachitetezo kapena gulu la Elastic Container Service.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Pali mitundu iwiri ya ma module. Izi ndi zofunika kumvetsetsa chifukwa zambiri zomwe ndasonkhanitsa mu lipotili sizinalembedwe m'mabuku.

Ndipo zolembedwa mu Terraform pakali pano ndizovuta chifukwa zimangonena kuti pali izi, mutha kuzigwiritsa ntchito. Koma sanena momwe angagwiritsire ntchito zinthuzi, chifukwa chake kuli bwino kuzigwiritsa ntchito. Chifukwa chake, anthu ambiri amalemba zomwe sangathe kukhala nazo.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tiyeni tiwone momwe tingalembe ma module awa. Kenako tiwona momwe tingawayimbire komanso momwe tingagwiritsire ntchito ma code.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

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

Langizo #0 ndikuti musalembe ma module othandizira. Ambiri mwa ma module awa adalembedwa kale kwa inu. Monga ndanenera, iwo ndi gwero lotseguka, alibe malingaliro abizinesi yanu, alibe ma hardcode a ma adilesi a IP, mapasiwedi, ndi zina zambiri. Ndipo mosakayikira linalembedwa kale. Pali ma module ambiri azinthu zochokera ku Amazon. pafupifupi 650. Ndipo ambiri aiwo ndi abwino.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Muchitsanzo ichi, wina adabwera kwa inu ndikuti, "Ndikufuna kuti ndizitha kuyang'anira database. Pangani module kuti ndipange database." Munthuyo sakudziwa tsatanetsatane wa kukhazikitsidwa kwa Amazon kapena Terraform. Amangonena kuti: "Ndikufuna kuyang'anira MSSQL." Ndiye kuti, tikutanthauza kuti idzayitana gawo lathu, kupititsa mtundu wa injini pamenepo, ndikuwonetsa nthawi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo munthu sayenera kudziwa kuti tidzapanga zinthu ziwiri zosiyana mkati mwa gawoli: imodzi ya MSSQL, yachiwiri pa china chirichonse, chifukwa mu Terraform 0.11 simungathe kufotokoza za nthawi ngati mukufuna.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo potuluka mugawoli, munthu azitha kungolandira adilesi. Sadzadziwa kuchokera ku database yanji, kuchokera kuzinthu zomwe timapanga zonsezi mkati. Ichi ndi chinthu chofunikira kwambiri chobisala. Ndipo izi sizikugwiranso ntchito ku ma module omwe ali pagulu poyera, komanso ma module omwe mungalembe mkati mwa mapulojekiti anu ndi magulu.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Uwu ndiye mkangano wachiwiri, womwe ndi wofunikira ngati mwakhala mukugwiritsa ntchito Terraform kwakanthawi. Muli ndi malo omwe mumayikamo ma module anu onse a Terraform kukampani yanu. Ndipo n’zachilendo kuti m’kupita kwa nthawi ntchitoyi idzakula mpaka kufika pa megabyte imodzi kapena ziwiri. Izi nzabwino.

Koma vuto ndi momwe Terraform imayitanira ma module awa. Mwachitsanzo, ngati muyimbira gawo kuti mupange wogwiritsa ntchito aliyense payekha, Terraform iyamba kuyika nkhokwe yonse kenako ndikusunthira kufoda yomwe gawolo lili. Mwanjira iyi mudzatsitsa megabyte imodzi nthawi iliyonse. Ngati mumayang'anira ogwiritsa ntchito 100 kapena 200, ndiye kuti mutsitsa ma megabytes 100 kapena 200, kenako pitani ku fodayo. Chifukwa chake mwachilengedwe simukufuna kutsitsa zinthu zambiri nthawi iliyonse mukamenya "Terraform init".

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

https://github.com/mbtproject/mbt

Pali njira ziwiri zothetsera vutoli. Yoyamba ndiyo kugwiritsa ntchito njira zofananira. Mwanjira iyi mukuwonetsa mu code kuti chikwatucho ndi chapafupi (./). Ndipo musanayambitse chilichonse, mumachita chojambula cha Git cha malowa kwanuko. Momwemo mumachitira kamodzi.

Pali, ndithudi, zambiri zofooketsa. Mwachitsanzo, simungagwiritse ntchito kumasulira. Ndipo izi nthawi zina zimakhala zovuta kukhala nazo.

Yachiwiri yankho. Ngati muli ndi ma submodules ambiri ndipo muli kale ndi mtundu wina wa payipi yokhazikitsidwa, ndiye kuti pali pulojekiti ya MBT, yomwe imakulolani kuti mutenge mapepala osiyanasiyana kuchokera ku monorepository ndikuyiyika ku S3. Iyi ndi njira yabwino kwambiri. Choncho, fayilo ya iam-user-1.0.0.zip idzalemera 1 KB yokha, chifukwa code yopangira izi ndi yaying'ono kwambiri. Ndipo idzagwira ntchito mofulumira kwambiri.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tiyeni tikambirane zomwe sizingagwiritsidwe ntchito m'ma module.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chifukwa chiyani izi ndizoyipa mu ma module? Choyipa kwambiri ndikungoganiza za wogwiritsa ntchito. Ganizirani kuti wogwiritsa ntchito ndi njira yotsimikizika yoperekera yomwe ingagwiritsidwe ntchito ndi anthu osiyanasiyana. Mwachitsanzo, tonse tidzatengera gawolo. Izi zikutanthauza kuti Terraform atenga udindowu. Ndiyeno ndi udindo umenewu idzachita zina.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo choyipa ndichakuti ngati Vasya amakonda kulumikiza ku Amazon mwanjira imodzi, mwachitsanzo, pogwiritsa ntchito kusinthika kwachilengedwe, ndipo Petya amakonda kugwiritsa ntchito kiyi yake yogawana, yomwe ali nayo mobisa, ndiye kuti simungathe kufotokoza zonse ziwiri. Terraform. Ndipo kuti asavutike, palibe chifukwa chowonetsera chipikachi mu gawoli. Izi ziyenera kuwonetsedwa pamlingo wapamwamba. Ndiko kuti, tili ndi gawo lazothandizira, gawo lachitukuko ndi zolemba pamwamba. Ndipo izi ziyenera kuwonetsedwa kwinakwake kumtunda.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Choipa chachiwiri ndi wopereka. Pano choipa sichinthu chochepa kwambiri, chifukwa ngati mutalemba code ndikukugwirani ntchito, ndiye kuti mungaganize kuti ngati ikugwira ntchito, ndiye bwanji kusintha.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Choyipa ndichakuti simumawongolera nthawi zonse kuti woperekayu akhazikitsidwe, choyamba. Ndipo chachiwiri, simukuwongolera zomwe aws ec2 amatanthauza, mwachitsanzo, tikulankhula za Linux kapena Windows tsopano. Chifukwa chake simungalembe china chake chomwe chingagwire ntchito chimodzimodzi pamakina osiyanasiyana ogwiritsira ntchito kapena pazinthu zosiyanasiyana za ogwiritsa ntchito.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chitsanzo chodziwika bwino, chomwe chasonyezedwanso m'zolemba zovomerezeka, ndikuti ngati mulemba aws_instance ndikutchula mikangano yambiri, ndiye kuti palibe cholakwika ndi chimenecho ngati mutchula wopereka "local-exec" pamenepo ndikuyendetsa ansible- buku lamasewera.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipotu, inde, palibe cholakwika ndi zimenezo. Koma posachedwa mudzazindikira kuti chinthu ichi-exec kulibe, mwachitsanzo, mu launch_configuration.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo mukamagwiritsa ntchito launch_configuration, ndipo mukufuna kupanga gulu la autoscaling kuchokera pa chitsanzo chimodzi, ndiye mu launch_configuration palibe lingaliro la "provisioner". Pali lingaliro la "data data".

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chifukwa chake, njira yapadziko lonse lapansi ndiyo kugwiritsa ntchito deta ya ogwiritsa ntchito. Ndipo idzakhazikitsidwa nthawi yomweyo, chitsanzocho chikayatsidwa, kapena pa data yomweyi, pamene gulu la autoscaling limagwiritsa ntchito launch_configuration.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ngati mukufunabe kuyendetsa wopereka, chifukwa ndi gawo la gluing, pamene chida chimodzi chapangidwa, panthawiyo muyenera kuyendetsa wopereka wanu, lamulo lanu. Pali zinthu zambiri ngati izi.

Ndipo gwero lolondola kwambiri pa izi limatchedwa null_resource. Null_resource ndi dummy gwero lomwe silinapangidwe kwenikweni. Simakhudza chilichonse, palibe API, palibe autoscaling. Koma zimakupatsani mwayi wolamulira nthawi yoyenera kuyendetsa. Pankhaniyi, lamulo limayendetsedwa panthawi yolenga.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

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

Pali zizindikiro zingapo. Sindidzalowa mu zizindikiro zonse mwatsatanetsatane. Pali nkhani yokhudza izi. Koma ngati munagwirapo ntchito ndi Terraform kapena kugwiritsa ntchito ma modules a anthu ena, ndiye kuti nthawi zambiri mwawona kuti ma modules ambiri, monga ma code ambiri omwe ali otseguka, amalembedwa ndi anthu pazosowa zawo. Munthu wina analemba ndipo anathetsa vuto lake. Ndinakakamira ku GitHub, ikhale yamoyo. Idzakhala ndi moyo, koma ngati palibe zolemba ndi zitsanzo pamenepo, ndiye kuti palibe amene adzaigwiritse ntchito. Ndipo ngati palibe magwiridwe antchito omwe amakulolani kuthana ndi zochulukirapo kuposa ntchito yake yeniyeni, ndiye kuti palibe amene angaigwiritse ntchito. Pali njira zambiri zotaya ogwiritsa ntchito.

Ngati mukufuna kulemba chinachake kuti anthu azigwiritsa ntchito, ndiye ndikupangira kutsatira zizindikiro izi.

Izi ndi:

  • Zolemba ndi zitsanzo.
  • Kugwira ntchito kwathunthu.
  • Zosasintha zomveka.
  • Code yoyera.
  • Mayeso.

Mayesero ndi osiyana chifukwa ndi ovuta kulemba. Ndimakhulupirira kwambiri zolemba ndi zitsanzo.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kotero, tinayang'ana momwe tingalembere ma modules. Pali mikangano iwiri. Yoyamba, yomwe ili yofunika kwambiri, si kulemba ngati mungathe, chifukwa gulu la anthu lachita kale ntchitozi pamaso panu. Ndipo chachiwiri, ngati mutasankhabe, yesetsani kuti musagwiritse ntchito ma modules ndi othandizira.

Ichi ndi gawo la imvi la zolembedwa. Mwina tsopano mukuganiza kuti: β€œChina chake sichikudziwika. Osatsimikiza." Koma tiwona mu miyezi isanu ndi umodzi.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tsopano tiyeni tikambirane momwe tingatchulire ma modules.

Timamvetsetsa kuti code yathu imakula pakapita nthawi. Tilibenso fayilo imodzi, tili ndi mafayilo 20. Onse ali mufoda imodzi. Kapena mafoda asanu. Mwinamwake tikuyamba mwanjira ina kuwaphwanya ndi dera, ndi zigawo zina. Ndiye timamvetsetsa kuti tsopano tili ndi zoyambira za kulunzanitsa ndi kuyimba. Ndiko kuti, tiyenera kumvetsetsa zomwe tiyenera kuchita ngati tasintha zida zapaintaneti, zomwe tiyenera kuchita ndi zina zonse zomwe tili nazo, momwe tingayambitsire kudalira uku, ndi zina.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Pali zinthu ziwiri monyanyira. Yoyamba monyanyira zonse mu umodzi. Tili ndi fayilo imodzi yayikulu. Pakadali pano, iyi inali njira yabwino kwambiri patsamba la Terraform.

Koma tsopano zalembedwa ngati zochotsedwa ndi kuchotsedwa. M’kupita kwa nthawi, anthu a m’dera la Terraform anazindikira kuti zimenezi zinali kutali ndi njira yabwino kwambiri, chifukwa anthu anayamba kugwiritsa ntchito ntchitoyi m’njira zosiyanasiyana. Ndipo pali mavuto. Mwachitsanzo, tikalemba zodalira zonse pamalo amodzi. Nthawi zina timadina "Terraform plan" ndipo mpaka Terraform asinthe maiko azinthu zonse, nthawi yambiri imatha.

Nthawi yambiri imakhala, mwachitsanzo, mphindi zisanu. Kwa ena iyi ndi nthawi yochuluka. Ndawonapo zochitika zomwe zidatenga mphindi 5. AWS API idakhala mphindi 15 kuyesa kudziwa zomwe zikuchitika ndi gawo lililonse. Ili ndi dera lalikulu kwambiri.

Ndipo, mwachibadwa, vuto lofanana lidzawonekera pamene mukufuna kusintha chinachake pamalo amodzi, ndiye mudikirira mphindi 15, ndipo imakupatsani chinsalu cha zosintha zina. Munalavula, munalemba "Inde", ndipo china chake chalakwika. Ichi ndi chitsanzo chenicheni. Terraform samayesa kukutetezani ku mavuto. Ndiko kuti, lembani zomwe mukufuna. Padzakhala mavuto - mavuto anu. Ngakhale Terraform 0.11 sikuyesera kukuthandizani mwanjira iliyonse. Pali malo ena osangalatsa mu 0.12 omwe amakulolani kuti: "Vasya, mukufunadi izi, kodi mutha kuzindikira?"

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Njira yachiwiri ndiyo kuchepetsa dera lino, ndiko kuti, mafoni ochokera kumalo amodzi akhoza kukhala ochepa kuchokera kumalo ena.

Vuto lokha ndiloti muyenera kulemba ma code ambiri, mwachitsanzo, muyenera kufotokoza zosinthika mu chiwerengero chachikulu cha mafayilo ndikusintha izi. Anthu ena sakonda. Izi ndizabwinobwino kwa ine. Ndipo anthu ena amaganiza kuti: "Bwanji ndikulemba izi m'malo osiyanasiyana, ndikuyika zonse pamalo amodzi." Izi ndizotheka, koma ichi ndi chachiwiri kwambiri.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndani ali nazo zonsezi kukhala pamalo amodzi? Mmodzi, awiri, atatu, ndiye kuti, wina akugwiritsa ntchito.

Ndipo ndani amatcha chigawo chimodzi, chipika chimodzi kapena gawo limodzi lachitukuko? Anthu asanu mpaka asanu ndi awiri. Izi ndizabwino.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Yankho lofala kwambiri ndi penapake pakati. Ngati polojekitiyi ndi yaikulu, ndiye kuti nthawi zambiri mudzakhala ndi vuto lomwe palibe yankho lomwe liri loyenera ndipo si zonse zomwe zimagwira ntchito, kotero mumatha ndi kusakaniza. Palibe cholakwika ndi izi, bola ngati mumvetsetsa kuti onse ali ndi zabwino.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ngati china chake chasintha mu stack VPC ndipo mukufuna kugwiritsa ntchito zosinthazi ku EC2, mwachitsanzo, mumafuna kusintha gulu la autoscaling chifukwa muli ndi subnet yatsopano, ndiye ndimayitcha mtundu wanyimbo wodalira. Pali mayankho: ndani amagwiritsa ntchito chiyani?

Ndikhoza kupereka mayankho omwe alipo. Mutha kugwiritsa ntchito Terraform kuchita zamatsenga, kapena mutha kugwiritsa ntchito ma fayilo kuti mugwiritse ntchito Terraform. Ndipo muwone ngati china chake chasintha pamenepo, mutha kuyiyambitsa pano.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mumakonda bwanji chisankhochi? Kodi alipo amene akukhulupirira kuti iyi ndi yankho labwino? Ndikuwona kumwetulira, zikuoneka kuti kukayikira kwalowa.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Inde, musayese izi kunyumba. Terraform sinapangidwe kuti iyendetsedwe kuchokera ku Terraform.

Pa lipoti lina anandiuza kuti: β€œAyi, izi sizingagwire ntchito.” Mfundo ndi yakuti siziyenera kugwira ntchito. Ngakhale zikuwoneka zochititsa chidwi mukatha kukhazikitsa Terraform kuchokera ku Terraform, kenako Terraform, simuyenera kutero. Terraform iyenera nthawi zonse kuyamba mosavuta.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

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

Ngati mukufuna kuyimba kuyimba pomwe china chake chasintha pamalo amodzi, ndiye kuti pali Terragrunt.

Terragrunt ndi chida chothandizira, chowonjezera ku Terraform, chomwe chimakupatsani mwayi wogwirizanitsa ndikuwongolera mafoni kuma module a zomangamanga.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Fayilo yokhazikika ya Terraform imawoneka motere.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mumatchula gawo lapadera lomwe mukufuna kuyimbira.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kodi gawoli limadalira chiyani?

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo ndi mfundo ziti zomwe gawoli limavomereza. Ndizo zonse zomwe muyenera kudziwa za Terragrunt.

Zolemba zilipo, ndipo pali nyenyezi 1 pa GitHub. Koma nthawi zambiri izi ndi zomwe muyenera kudziwa. Ndipo izi ndizosavuta kukhazikitsa m'makampani omwe akungoyamba kumene kugwira ntchito ndi Terraform.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chifukwa chake ochestra ndi Terragrunt. Palinso njira zina.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Tsopano tiyeni tikambirane mmene ntchito ndi code.

Ngati mukufuna kuwonjezera zatsopano pamakhodi anu, nthawi zambiri izi zimakhala zosavuta. Mukulemba gwero latsopano, chirichonse chiri chophweka.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ngati muli ndi zida zomwe mudapanga pasadakhale, mwachitsanzo, mudaphunzira za Terraform mutatsegula akaunti ya AWS ndipo mukufuna kugwiritsa ntchito zomwe muli nazo kale, ndiye kuti zingakhale zoyenera kuwonjezera gawo lanu motere, kuti imathandizira kugwiritsa ntchito zinthu zomwe zilipo kale.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo adathandizira kupangidwa kwazinthu zatsopano pogwiritsa ntchito block resource.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Potulutsa timabwezeranso id yotulutsa kutengera zomwe zidagwiritsidwa ntchito.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Vuto lachiwiri lofunika kwambiri mu Terraform 0.11 likugwira ntchito ndi mindandanda.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Chovuta ndi chakuti ngati tili ndi mndandanda wa ogwiritsa ntchito.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndipo tikapanga ogwiritsa ntchitowa pogwiritsa ntchito block resource, ndiye kuti zonse zimayenda bwino. Timadutsa mndandanda wonse, ndikupanga fayilo kwa aliyense. Zonse zili bwino. Ndiyeno, mwachitsanzo, user3, yemwe ali pakati, ayenera kuchotsedwa pano, ndiye zonse zomwe zinalengedwa pambuyo pake zidzapangidwanso chifukwa ndondomeko idzasintha.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kugwira ntchito ndi ndandanda m'malo abwino. Kodi malo abwino ndi chiyani? Umu ndi momwe mtengo watsopano umapangidwira pamene chida ichi chikupangidwa. Mwachitsanzo, AWS Access Key kapena AWS Secret Key, i.e. tikapanga wogwiritsa ntchito, timalandira Kufikira kapena Chinsinsi chatsopano. Ndipo nthawi iliyonse tikachotsa wosuta, wogwiritsa ntchitoyo amakhala ndi kiyi yatsopano. Koma izi si feng shui, chifukwa wosuta sangafune kukhala mabwenzi nafe ngati tipanga wosuta watsopano kwa iye nthawi iliyonse wina kusiya gulu.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ili ndiye yankho. Iyi ndi code yolembedwa mu Jsonnet. Jsonnet ndi chilankhulo chojambula kuchokera ku Google.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Lamuloli limakupatsani mwayi wovomereza template iyi ndipo ngati zotsatira zake zimabwezera fayilo ya json yomwe imapangidwa molingana ndi template yanu.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Template ikuwoneka chonchi.

Terraform imakulolani kuti mugwire ntchito ndi HCL ndi Json mofanana, kotero ngati muli ndi luso lopanga Json, ndiye kuti mutha kuyiyika mu Terraform. Fayilo yokhala ndi extension .tf.json itsitsidwa bwino.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndiyeno timagwira nawo ntchito monga mwachizolowezi: terraform init, terramorm ntchito. Ndipo timapanga ogwiritsa ntchito awiri.

Tsopano sitichita mantha ngati wina wachoka mu timu. Tingosintha fayilo ya json. Vasya Dzungu anachoka, Petya Pyatochkin anakhalabe. Petya Pyatochkin sadzalandira kiyi yatsopano.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kuphatikiza Terraform ndi zida zina si ntchito ya Terraform kwenikweni. Terraform idapangidwa ngati nsanja yopangira zinthu ndipo ndi momwemo. Ndipo chilichonse chomwe chimabwera pambuyo pake sichida nkhawa ndi Terraform. Ndipo palibe chifukwa choluka mmenemo. Pali Ansible, yomwe imachita zonse zomwe mungafune.

Koma zinthu zimachitika tikafuna kukulitsa Terraform ndikuyitanitsa lamulo lina litamaliza.

Njira yoyamba. Timapanga zotuluka pomwe timalemba lamulo ili.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Ndiyeno timatcha lamulo ili kuchokera ku chipolopolo cha terraform ndikufotokozera mtengo umene tikufuna. Chifukwa chake, lamuloli limachitidwa ndi zikhalidwe zonse zosinthidwa. Ndi bwino kwambiri.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Njira yachiwiri. Uku ndikugwiritsa ntchito null_resource kutengera kusintha kwazinthu zathu. Titha kuyimbiranso exe komweko komweko mukangosintha ID yazinthu zina.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mwachilengedwe, izi zonse ndi zosalala pamapepala, chifukwa Amazon, monga ena onse othandizira anthu, ili ndi mulu wamilandu yake.

Chodziwika kwambiri cha m'mphepete ndikuti mukatsegula akaunti ya AWS, zimafunikira madera omwe mumagwiritsa ntchito; ndi mbali iyi yathandizidwa pamenepo; mwina mudatsegula pambuyo pa December 2013; mwina mukugwiritsa ntchito kusakhulupirika mu VPC etc. Pali zoletsa zambiri. Ndipo Amazon idawabalalitsa pazolemba zonse.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Pali zinthu zingapo zomwe ndimalimbikitsa kupewa.

Kuti muyambe, pewani mikangano yonse yopanda chinsinsi mkati mwa dongosolo la Terraform kapena Terraform CLI. Zonsezi zitha kuyikidwa mufayilo ya tfvars kapena kusinthika kwachilengedwe.

Koma simuyenera kuloweza lamulo lonse lamatsenga ili. Mapulani a Terraform - var ndipo timapita. Mtundu woyamba ndi var, wachiwiri ndi var, wachitatu, wachinayi. Mfundo yofunika kwambiri ya zomangamanga monga code yomwe ndimagwiritsa ntchito nthawi zambiri ndikuti pongoyang'ana kachidindo, ndiyenera kumvetsetsa bwino zomwe zimayikidwa pamenepo, momwe zilili komanso ndi zikhalidwe ziti. Ndipo chifukwa chake sindiyenera kuwerenga zolembazo kapena kufunsa Vasya kuti ndi magawo ati omwe adagwiritsa ntchito popanga gulu lathu. Ndikungofunika kutsegula fayilo ndi zowonjezera za tfvars, zomwe nthawi zambiri zimagwirizana ndi chilengedwe, ndikuyang'ana zonse zomwe zilipo.

Komanso, musagwiritse ntchito mikangano yomwe mukufuna kuti muchepetse kufalikira. Kwa izi ndizosavuta kugwiritsa ntchito ma module ang'onoang'ono a zomangamanga.

Komanso, palibe chifukwa chochepetsera ndikuwonjezera kufanana. Ngati ndili ndi 150 zothandizira ndipo ndikufuna kuonjezera kufanana kwa Amazon kuchokera ku 10 mpaka 100, ndiye kuti chinachake chidzalakwika. Kapena zitha kuyenda bwino tsopano, koma Amazon ikanena kuti mukuyimba mafoni ambiri, mudzakhala m'mavuto.

Terraform ayesa kuyambitsanso ambiri mwamavutowa, koma simungakwaniritse chilichonse. Parallelism = 1 ndichinthu chofunikira kugwiritsa ntchito ngati mutapunthwa ndi cholakwika mkati mwa AWS API kapena mkati mwa Terraform provider. Kenako muyenera kufotokoza: parallelism = 1 ndikudikirira mpaka Terraform amalize kuyimba kumodzi, kenako yachiwiri, kenako yachitatu. Adzawatsegulira mmodzimmodzi.

Anthu nthawi zambiri amandifunsa kuti, "N'chifukwa chiyani ndikuganiza kuti malo ogwirira ntchito a Terraform ndi oipa?" Ndikukhulupirira kuti mfundo zachitukuko monga ma code ndikuwona zomwe zidapangidwa komanso zomwe zili zofunika.

Malo ogwirira ntchito sanapangidwe ndi ogwiritsa ntchito. Izi sizikutanthauza kuti ogwiritsa ntchito adalemba nkhani za GitHub kuti sitingakhale popanda malo ogwirira ntchito a Terraform. Ayi sichoncho. Terraform Enterprise ndi yankho lamalonda. Terraform wochokera ku HashiCorp adaganiza kuti tikufuna malo ogwirira ntchito, chifukwa chake tidazisiya. Ndimaona kuti ndizosavuta kuziyika mufoda yapadera. Kenako padzakhala mafayilo ochulukirapo, koma zikhala zomveka bwino.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Kodi kugwira ntchito ndi code? M'malo mwake, kugwira ntchito ndi mindandanda ndiko kupweteka kokha. Ndipo tengani Terraform mosavuta. Ichi si chinthu chomwe chingakuchitireni zabwino zonse. Palibe chifukwa chokankhira zonse zomwe zalembedwa muzolemba pamenepo.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Mutu wa lipotilo unalembedwa "zamtsogolo." Ndilankhula za izi mwachidule kwambiri. M'tsogolomu, izi zikutanthauza kuti 0.12 idzatulutsidwa posachedwa.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

0.12 ndi matani azinthu zatsopano. Ngati mumachokera ku mapulogalamu okhazikika, ndiye kuti mumaphonya mitundu yonse ya midadada yamphamvu, malupu, kufananitsa kolondola komanso kovomerezeka, komwe mbali yakumanzere ndi yakumanja sikuwerengedwa nthawi imodzi, koma kutengera momwe zinthu ziliri. Mukuphonya kwambiri, kotero 0.12 idzakuthetserani.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Koma! Ngati mulemba mochepa komanso mophweka, pogwiritsa ntchito ma modules okonzeka ndi mayankho a chipani chachitatu, ndiye kuti simuyenera kudikira ndikuyembekeza kuti 0.12 idzabwera ndikukonzerani zonse.

Kufotokozera za zomangamanga ku Terraform zamtsogolo. Anton Babenko (2018)

Zikomo chifukwa cha lipoti! Munalankhula za zomangamanga monga ma code ndipo munanena mawu amodzi okhudza mayeso. Kodi mayeso amafunikira m'ma module? Kodi udindo umenewu ndi wa ndani? Kodi ndiyenera kulemba ndekha kapena ndi udindo wa ma module?

Chaka chotsatira chidzadzazidwa ndi malipoti kuti tasankha kuyesa chirichonse. Zomwe mungayesere ndiye funso lalikulu kwambiri. Pali zodalira zambiri, zoletsa zambiri kuchokera kwa othandizira osiyanasiyana. Pamene iwe ndi ine tikulankhula ndipo umati: "Ndikufuna mayeso," ndiye ndikufunsa kuti: "Mukayesa chiyani?" Mukunena kuti mudzayesa m'dera lanu. Ndiye ndikunena kuti izi sizikugwira ntchito mdera langa. Ndiko kuti, sitingathe ngakhale kuvomereza pa izi. Osanenapo kuti pali zovuta zambiri zaukadaulo. Ndiko kuti, momwe mungalembe mayesowa kuti akhale okwanira.

Ndikufufuza mozama za mutuwu, mwachitsanzo, momwe mungapangire mayeso motengera zomwe mudalemba. Ndiye kuti, ngati mudalemba code iyi, ndiye kuti ndiyenera kuyendetsa, kutengera izi nditha kupanga mayeso.

Terrates ndi amodzi mwa malaibulale omwe amatchulidwa pafupipafupi omwe amakulolani kuti mulembe mayeso ophatikiza a Terraform. Ichi ndi chimodzi mwazinthu zothandiza. Ndimakonda mtundu wa DSL, mwachitsanzo, rspec.

Anton, zikomo chifukwa cha lipoti! Dzina langa ndine Valery. Ndiloleni ndifunse funso lanzeru. Pali, mokhazikika, kupereka, pali kutumizidwa. Kupereka kumapanga maziko anga, potumiza timadzaza ndi chinthu chothandiza, mwachitsanzo, ma seva, mapulogalamu, ndi zina zotero. Ndipo zili m'mutu mwanga kuti Terraform ndi yowonjezereka yopereka, ndipo Ansible ndiyomwe imayenera kutumizidwa, chifukwa Ansible ndi yakuthupi. imakulolani kuti muyike nginx, Postgres. Koma nthawi yomweyo, Ansible ikuwoneka kuti imalola kupereka, mwachitsanzo, za Amazon kapena Google. Koma Terraform imakulolani kuti mugwiritse ntchito mapulogalamu ena pogwiritsa ntchito ma modules ake. Kuchokera kumalingaliro anu, kodi pali mtundu wina wa malire omwe amayenda pakati pa Terraform ndi Ansible, kuti ndi chiyani chabwino kugwiritsa ntchito? Kapena, mwachitsanzo, mukuganiza kuti Ansible ndi zinyalala kale, muyenera kuyesa kugwiritsa ntchito Terraform pachilichonse?

Funso labwino, Valery. Ndikukhulupirira kuti Terraform sinasinthe malinga ndi cholinga kuyambira 2014. Idapangidwa kuti ikhale maziko ndipo idafera maziko. Tidakhalabe ndipo tifunika kuwongolera masinthidwe Ansible. Vuto ndiloti pali deta ya ogwiritsa ntchito mkati mwa launch_configuration. Ndipo pamenepo mumakoka Ansible, ndi zina zotero. Uku ndiye kusiyanitsa komwe ndimakonda kwambiri.

Ngati tikukamba za zomangamanga zokongola, ndiye kuti pali zofunikira monga Packer zomwe zimasonkhanitsa chithunzichi. Ndiyeno Terraform amagwiritsa ntchito gwero la deta kuti apeze chithunzichi ndikusintha launch_configuration. Ndiko kuti, mwanjira imeneyi mapaipi ndikuti timakoka kaye Tracker, kenako kukoka Terraform. Ndipo ngati kumangidwa kumachitika, ndiye kuti kusintha kwatsopano kumachitika.

Moni! Zikomo chifukwa cha lipoti! Dzina langa ndine Misha, kampani ya RBS. Mutha kuyimbira Ansible kudzera pa provider popanga chothandizira. Ansible ilinso ndi mutu wotchedwa dynamic inventory. Ndipo mutha kuyimba kaye Terraform, ndikuyimbira Ansible, yomwe ingatenge chuma kuchokera ku boma ndikuchichita. Chabwino nchiyani?

Anthu amagwiritsa ntchito zonsezi ndi kupambana kofanana. Zikuwoneka kwa ine kuti kusanthula kwamphamvu mu Ansible ndichinthu chosavuta, ngati sitikulankhula za gulu la autoscaling. Chifukwa mu gulu la autoscaling tili kale ndi zida zathu, zomwe zimatchedwa launch_configuration. Mu launch_configuration timalemba zonse zomwe ziyenera kukhazikitsidwa tikapanga chida chatsopano. Chifukwa chake, ndi Amazon, kugwiritsa ntchito kusanthula kwamphamvu ndikuwerenga fayilo ya Terraform ts, m'malingaliro mwanga, ndikokwanira. Ndipo ngati mugwiritsa ntchito zida zina pomwe palibe lingaliro la "gulu la autoscaling", mwachitsanzo, mumagwiritsa ntchito DigitalOcean kapena othandizira ena pomwe palibe gulu la autoscaling, pamenepo muyenera kukokera pamanja API, kupeza ma adilesi a IP, kupanga. a dynamic inventory file , ndipo Ansible ayamba kale kudutsamo. Ndiko kuti, kwa Amazon pali launch_configuration, ndipo pa china chirichonse pali kufufuza kwamphamvu.

Source: www.habr.com

Kuwonjezera ndemanga