Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Vanhu vazhinji vanoziva uye vanoshandisa Terraform mubasa ravo rezuva nezuva, asi maitiro akanaka ayo haasati aumbwa. Chikwata chimwe nechimwe chinofanirwa kugadzira nzira dzayo uye nzira.

Zvivakwa zvako zvinenge zvinotanga zviri nyore: zviwanikwa zvishoma + vashoma vanogadzira. Nokufamba kwenguva, inokura munzira dzakasiyana-siyana. Iwe unowana nzira dzekuunganidza zviwanikwa muTerraform modules, kuronga kodhi mumaforodha, uye chii chimwe chinogona kukanganisa? (akakurumbira mazwi ekupedzisira)

Nguva inopfuura uye iwe unonzwa senge yako gadziriso chipfuyo chako chitsva, asi nei? Iwe unonetsekana nekuchinja kusingatsananguriki muzvivakwa, unotya kubata zvivakwa uye kodhi - semhedzisiro, unononoka mashandiro matsva kana kuderedza mhando ...

Mushure memakore matatu ekutarisira muunganidzwa weTerraform nharaunda mamodules eAWS paGithub uye kwenguva refu kuchengetedza kweTerraform mukugadzirwa, Anton Babenko akagadzirira kugovera ruzivo rwake: manyorero eTF modules kuti arege kukuvadza mune ramangwana.

Pakupera kwehurukuro, vatori vechikamu vachange vave kujairana nemisimboti yekutonga zviwanikwa muTerraform, maitiro akanakisa ane hukama nemamodule muTerraform, uye mamwe anoenderera mberi ekubatanidza masimboti ane chekuita nekutonga kwezvivakwa.

Disclaimer: Ini ndinoona kuti chirevo ichi chakanyorwa munaNovember 2018-2 makore atopfuura. Iyo vhezheni yeTerraform 0.11 yakakurukurwa mumushumo haichatsigirwi. Kwemakore maviri apfuura, 2 zvitsva zvitsva zvakaburitswa, izvo zvine zvakawanda zvitsva, kuvandudzwa uye shanduko. Ndapota teerera kune izvi uye tarisa zvinyorwa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Mareferensi:

Ini ndinonzi Anton Babenko. Vamwe venyu vangangoshandisa kodhi yandakanyora. Ini zvino ndichataura nezve izvi nekuvimba kwakawanda kupfuura nakare kose, nekuti ndine mukana wehuwandu.

Ini ndinoshanda paTerraform uye ndanga ndichitora chikamu uye ndichipa kune yakawanda yakavhurika sosi mapurojekiti ane chekuita neTerraform neAmazon kubvira 2015.

Kubva ipapo ndakanyora kodhi yakakwana kuti ndiiise nenzira inofadza. Uye ndichaedza kukuudza pamusoro peizvi ikozvino.

Ini ndichataura pamusoro pekuoma uye zvakananga zvekushanda neTerraform. Asi haisiriyo nyaya yeHighLoad. Uye zvino iwe uchanzwisisa chikonzero nei.

Nekufamba kwenguva, ndakatanga kunyora Terraform modules. Vashandisi vakanyora mibvunzo, ndakainyora zvakare. Ipapo ndakanyora zvishandiso zvakasiyana-siyana kufomatisa kodhi uchishandisa pre-commit hook, nezvimwe.

Paiva nemabasa akawanda ainakidza. Ini ndinoda chizvarwa chekodhi nekuti ini ndinoda komputa kuti iite rakawanda uye rakawanda basa kwandiri uye mugadziri, saka parizvino ndiri kushanda pane Terraform kodhi jenareta kubva pakuona madhayagiramu. Pamwe vamwe venyu makavaona. Aya mabhokisi akanaka ane miseve. Uye ini ndinofunga zvakanaka kana iwe ukakwanisa kudzvanya bhatani re "Export" uye uwane yese sekodhi.

Ndinobva kuUkraine. Ndagara muNorway kwemakore akawanda.

Zvakare, ruzivo rwechinyorwa ichi rwakaunganidzwa kubva kune vanhu vanoziva zita rangu uye vanondiwana pasocial network. Ndinenge ndiine zita remadunhurirwa rimwechete.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

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

Sezvandataura, ini ndini muchengeti mukuru weTerraform AWS modules, inova imwe yenzvimbo huru dzekuchengetedza paGitHub kwatinotambira mamodule emabasa akajairika: VPC, Autoscaling, RDS.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye izvo zvawanzwa zvino ndizvo zvakanyanya kukosha. Kana iwe uchikahadzika kuti unonzwisisa kuti Terraform chii, saka zviri nani kushandisa nguva yako kumwe kunhu. Pachave nemazwi mazhinji ehunyanzvi pano. Uye handina kuzeza kuzivisa mwero weshumo kuva wepamusoro-soro. Izvi zvinoreva kuti ndinokwanisa kutaura ndichishandisa mazwi ese anobvira pasina tsananguro yakawanda.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Terraform yakaonekwa muna 2014 sechishandiso chakakubvumidza iwe kunyora, kuronga uye kugadzirisa zvivakwa sekodhi. Pfungwa yakakosha pano ndeye "infrastructure sekodhi."

Zvinyorwa zvese, sezvandataura, zvakanyorwa mukati terraform.io. Ndinovimba vanhu vazhinji vanoziva nezve saiti ino uye vakaverenga zvinyorwa. Kana zvakadaro, saka iwe uri munzvimbo chaiyo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Izvi ndizvo zvinotaridzika seTerraform yekumisikidza faira, kwatinotanga kutsanangura zvimwe zvinosiyana.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Muchiitiko ichi tinotsanangura "aws_region".

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Tinobva tatsanangura kuti ndezvipi zviwanikwa zvatinoda kugadzira.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Isu tinomhanyisa mimwe mirairo, kunyanya "terraform init" kuitira kurodha zvinotsamira uye vanopa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye isu tinomhanyisa iyo "terraform application" kuraira kuti titarise kana iyo yakatarwa inofanana nezviwanikwa zvatakagadzira. Sezvo tisina kumbogadzira chero chinhu, Terraform inotikurudzira kugadzira zviwanikwa izvi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Tinosimbisa izvi. Nokudaro tinogadzira bhaketi rinonzi seasnail.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kune zvakare akati wandei akafanana ekushandisa. Vazhinji venyu vanoshandisa Amazon munoziva AWS CloudFormation kana Google Cloud Deployment Manager kana Azure Resource Manager. Imwe neimwe yadzo ine yayo yekumisikidza yeimwe mhando yekugadzirisa zviwanikwa mukati meimwe neimwe yeava veruzhinji gore vanopa. Terraform inonyanya kubatsira nekuti inokutendera iwe kubata pamusoro pe100 vanopa. (Mamwe mashoko pano)

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Zvinangwa zvakatevedzwa neTerraform kubva pakutanga:

  • Terraform inopa maonero ega ezviwanikwa.
  • Inokutendera iwe kutsigira ese emazuva ano mapuratifomu.
  • Uye Terraform yakagadzirwa kubva pakutanga sechinhu chinokutendera kuti uchinje zvivakwa zvakachengeteka uye nekufungidzira.

Muna 2014, izwi rekuti "kufanofungidzira" rakanzwika zvisina kujairika mune ino mamiriro.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Terraform chinhu chinoshandiswa pasi rose. Kana iwe uine API, saka unogona kudzora zvachose zvese:

  • Iwe unogona kushandisa vanopfuura 120 vanopa kubata zvese zvaunoda.
  • Semuenzaniso, unogona kushandisa Terraform kutsanangura kuwana GitHub repositories.
  • Iwe unogona kunyange kugadzira uye kuvhara bugs muJira.
  • Iwe unogona kubata New Relic metrics.
  • Iwe unogona kutogadzira mafaera mubhokisi rekudonha kana uchinyatsoda.

Izvi zvese zvinowanikwa uchishandisa Terraform vanopa, vane yakavhurika API inogona kutsanangurwa muGo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ngatitii takatanga kushandisa Terraform, tikaverenga zvinyorwa pasaiti, takaona vhidhiyo, ndokutanga kunyora main.tf, sezvandakaratidza pamasiraidhi apfuura.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye zvese zvakanaka, une faira rinogadzira VPC.

Kana iwe uchida kugadzira VPC, wobva watsanangura angangoita aya gumi nemaviri mitsara. Rondedzera kuti ndeipi dunhu raunoda kugadzira, ndeipi cidr_block ye IP kero yekushandisa. Ndizvo zvose.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Sezvingatarisirwa, basa racho richakura zvishoma nezvishoma.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye iwe unenge uchiwedzera boka rezvinhu zvitsva ipapo: zviwanikwa, data masosi, iwe uchabatanidza nevatsva vanopa, kamwe kamwe iwe uchada kushandisa Terraform kubata vashandisi muGitHub account yako, nezvimwe. Ungada kushandisa zvakasiyana. DNS vanopa, yambuka zvese. Terraform inoita kuti izvi zvive nyore.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ngatitarisei muenzaniso unotevera.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iwe unowedzera zvishoma nezvishoma internet_gateway nekuti iwe unoda zviwanikwa kubva kuVPC yako kuti uwane internet. Iri ipfungwa yakanaka.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Mhedzisiro ndeiyi main.tf:

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ichi ndicho chikamu chepamusoro che main.tf.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ichi ndicho chikamu chepasi che main.tf.

Wobva wawedzera subnet. Panguva yaunoda kuwedzera magedhi eNAT, nzira, matafura enzira uye boka remamwe ma subnets, hauzove nemitsara makumi matatu nemasere, asi ingangoita mazana maviri-makumi matatu mitsara.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ndiko kuti, yako main.tf faira iri kukura zvishoma nezvishoma. Uye kazhinji vanhu vanoisa zvese mufaira rimwe chete. 10-20 KB inowanikwa main.tf. Fungidzira kuti 10-20 KB ndeyezvinyorwa zvemukati. Uye zvose zvakabatana nezvose. Izvi zvishoma nezvishoma zvinova zvakaoma kushanda nazvo. 10-20 KB yakanaka mushandisi kesi, dzimwe nguva zvimwe. Uye vanhu havawanzofunga kuti izvi zvakaipa.

Sezviri muchirongwa chenguva dzose, i.e. kwete zvivakwa sekodhi, isu tinoshandiswa kushandisa boka remakirasi akasiyana, mapakeji, mamodule, mapoka. Terraform inokutendera iwe kuti uite zvakawanda zvakafanana.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

  • Kodhi iri kukura.
  • Kutsamira pakati pezviwanikwa kuri kuwedzerawo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye tine chido chikuru, chikuru. Tinonzwisisa kuti hatichagoni kurarama seizvi. Kodhi yedu iri kuita yakakura. 10-20 KB, hongu, haina kukura zvakanyanya, asi isu tiri kutaura chete nezve network stack, i.e. iwe wakangowedzera network zviwanikwa. Hatisi kutaura nezve Application Load Balancer, deployment ES cluster, Kubernetes, nezvimwewo, uko 100 KB inogona kurukwa mukati. Kana iwe ukanyora zvese izvi pasi, iwe uchakurumidza kuziva kuti Terraform inopa Terraform module.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Terraform modules ndeye-ine-ine Terraform gadziriso inotungamirwa seboka. Ndizvo chete zvaunoda kuziva nezve Terraform modules. Ivo havana kungwara zvachose, havakutendere iwe kuti uite chero yakaoma yekubatanidza zvichienderana nechimwe chinhu. Izvi zvose zvinowira pamapfudzi evagadziri. Ndokunge, iyi ingori imwe mhando yeTerraform kumisikidzwa yawakatonyora. Uye unogona kungozvidaidza seboka.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Saka tiri kuyedza kunzwisisa kuti tichakwirisa sei yedu 10-20-30 KB yekodhi. Isu tiri kuona zvishoma nezvishoma kuti tinoda kushandisa mamwe mamodule.

Mhando yekutanga yemamodule aunosangana nayo ndeye resource modules. Ivo havanzwisise kuti zvivakwa zvako ndezvei, bhizinesi rako riri pamusoro pei, kupi uye chii mamiriro acho. Aya ndiwo chaiwo mamodule ayo ini, pamwe chete neyakavhurika sosi nharaunda, ndinotonga, uye yatinoisa pamberi seyekutanga zvivharo zvekuvaka zvezvivakwa zvako.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Muenzaniso wemodule yekushandisa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Patinodaidza resource module, tinotsanangura kubva munzira yatinofanira kurodha zvirimo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Isu tinoratidza kuti ndeipi shanduro yatinoda kudhaunirodha.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Tinopfuudza mhomho yenharo ipapo. Ndizvo zvose. Ndizvo chete zvatinofanira kuziva patinoshandisa module iyi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Vanhu vazhinji vanofunga kuti kana vakashandisa shanduro yemazuva ano, zvinhu zvose zvichagadzikana. Asi kwete. Zvivakwa zvinofanirwa kushandurwa; isu tinofanirwa kupindura zvakajeka kuti ndeipi vhezheni iyi kana icho chikamu chakaiswa kwairi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Heino kodhi iri mukati memodule iyi. Chengetedzo-boka module. Pano mupumburu unoenda kumutsara wechi640. Kugadzira chengetedzo-croup sosi muAmazon mune zvese zvinogoneka zvigadziriso ibasa risiri ridiki. Hazvina kukwana kungogadzira boka rekuchengetedza uye kuriudza kuti ndeipi mitemo yekupfuudza kwairi. Zvingave zviri nyore. Kune miriyoni yezvirambidzo zvakasiyana mukati meAmazon. Somuenzaniso, kana ukashandisa VPC endpoint, prefix list, akasiyana API uye inoedza kusanganisa zvese izvi nezvimwe zvese, ipapo Terraform haikubvumidzi kuita izvi. Uye iyo Amazon API haitenderi izvi zvakare. Naizvozvo, isu tinofanirwa kuvanza zvese izvi zvinotyisa logic mumodule uye topa mushandisi kodhi inotaridzika seizvi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Mushandisi haafanire kuziva kuti inogadzirwa sei mukati.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Mhando yechipiri yemamodules, ayo ane zviwanikwa modules, anotogadzirisa matambudziko anonyanya kushanda kubhizinesi rako. Kazhinji ino inzvimbo iri yekuwedzera yeTerraform uye inoisa humwe hutsika hwakasimba hwema tag, kune zviyero zvekambani. Iwe unogona zvakare kuwedzera kushanda ipapo iyo Terraform isingakubvumidze iwe kushandisa. Izvi izvozvi. Iye zvino vhezheni 0.11, yave kuda kuva chinhu chekare. Asi zvakadaro, preprocessors, jsonnet, cookiecutter uye boka rezvimwe zvinhu ndiyo nzira yekubatsira iyo inofanirwa kushandiswa pabasa rakazara.

Tevere ndicharatidza mimwe mienzaniso yeizvi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iyo module yezvivakwa inodanwa nenzira imwecheteyo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kwauri kudhaunirodha zvirimo kunoratidzwa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Boka remakoshero rinopfuudzwa mukati uye rinopfuudzwa mune ino module.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Tevere, mukati memodule iyi, boka remamodule module anodanwa kugadzira VPC kana Application Load Balancer, kana kugadzira boka rekuchengetedza kana reElastic Container Service cluster.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kune marudzi maviri emamodule. Izvi zvakakosha kuti tinzwisise nekuti ruzivo rwakawanda rwandaisa mushumo iyi haruna kunyorwa muzvinyorwa.

Uye zvinyorwa zviri muTerraform izvozvi zvinetse nekuti zvinongoti pane aya maficha, unogona kuzvishandisa. Asi haatauri mashandisiro ezvimiro izvi, nei zviri nani kuzvishandisa. Nokudaro, nhamba huru kwazvo yevanhu vanonyora chimwe chinhu chavasingagoni kurarama nacho.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ngatitarisei manyorerwo aya mamodule anotevera. Zvadaro tichaona kuti tingavadana sei uye kuti tingashanda sei nekodhi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

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

Zano #0 nderekusanyora zviwanikwa module. Mazhinji emamodule aya akatonyorerwa iwe. Sezvandakataura, iwo akavhurika sosi, haana chero yebhizinesi rako logic, haana hardcoded kukosha kweIP kero, mapassword, nezvimwe. Iyo module inochinjika. Uye sezvingabvira yakatonyorwa. Kune akawanda mamodule ezviwanikwa kubva kuAmazon. Vanenge 650. Uye vazhinji vavo ndevemhando yakanaka.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Mumuenzaniso uyu, mumwe munhu akauya kwauri akati, "Ndinoda kukwanisa kubata dhatabhesi. Gadzira module kuti ndigadzire database." Munhu wacho haazive maitirwo ekuita zveAmazon kana Terraform. Anongoti: "Ndinoda kubata MSSQL." Ndiko kuti, isu tinoreva kuti ichadaidza module yedu, kupfuudza injini yemhando ipapo, uye kuratidza nguva yenguva.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye munhu haafanire kuziva kuti isu tichagadzira zviwanikwa zviviri zvakasiyana mukati memodule iyi: imwe yeMSSQL, yechipiri kune zvimwe zvese, chete nekuti muTerraform 0.11 haugone kutsanangura kukosha kwenzvimbo yenguva sesarudzo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye pakubuda kubva module iyi, munhu anongokwanisa kugamuchira kero. Haazoziva kubva kune dhatabhesi, kubva kune ipi sosi yatiri kugadzira zvese izvi mukati. Ichi chinhu chakakosha zvikuru chekuvanza. Uye izvi zvinoshanda kwete chete kune iwo mamodule ari paruzhinji munzvimbo yakavhurika sosi, asiwo kune iwo mamodule aunonyora mukati mezvirongwa zvako nezvikwata.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iyi ndiyo nharo yechipiri, iyo yakakosha kana wanga uchishandisa Terraform kwechinguva. Iwe une repository yaunoisa yako ese Terraform modules yekambani yako. Uye zvakajairika kuti nekufamba kwenguva chirongwa ichi chichakura kusvika pakukura kwe megabytes imwe kana maviri. Izvi zvakanaka.

Asi dambudziko nderekuti Terraform inodaidza sei mamodule aya. Semuenzaniso, kana iwe ukafonera module kuti ugadzire mushandisi wega wega, Terraform inotanga kurodha iyo yese repository uye wozoenda kune folda uko iyo chaiyo module iripo. Nenzira iyi iwe unozorodha imwe megabyte nguva yega yega. Kana iwe ukakwanisa kushandisa zana kana mazana maviri vashandisi, ipapo iwe unozodhawunirodha zana kana mazana maviri megabytes, uye wozoenda kune iyo folda. Saka zvakasununguka haudi kudhawunirodha boka rezvinhu pese paunorova "Terraform init".

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

https://github.com/mbtproject/mbt

Pane mhinduro mbiri dzedambudziko iri. Yekutanga ndeye kushandisa nzira dzinoenderana. Nenzira iyi unoratidza mukodhi kuti folda ndeyemunharaunda (./). Uye usati watanga chero chinhu, unoita Git clone yeiyi repository munharaunda. Nenzira iyi unozviita kamwe chete.

Iko kune, hongu, yakawanda yakaderera. Semuenzaniso, haugone kushandisa shanduro. Uye izvi dzimwe nguva zvakaoma kurarama nazvo.

Mhinduro yechipiri. Kana iwe uine akawanda submodules uye iwe uchitova neimwe mhando yepombi yakamiswa, saka kune iyo MBT purojekiti, iyo inokutendera kuti utore akawanda akasiyana mapakeji kubva kune monorepository uye woaisa kuS3. Iyi inzira yakanaka kwazvo. Saka, iyo iam-user-1.0.0.zip faira inorema 1 Kb chete, nekuti kodhi yekugadzira iyi sosi idiki kwazvo. Uye ichashanda nekukurumidza.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ngatitaure nezve izvo zvisingagoni kushandiswa mumamodule.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Sei izvi zvakaipa mumamodule? Chinhu chakaipisisa ndechekufunga mushandisi. Fungidzira mushandisi isarudzo yechokwadi yemupi inogona kushandiswa nevanhu vakasiyana. Semuyenzaniso, isu tose tichatevedzera basa. Izvi zvinoreva kuti Terraform ichaita basa iri. Uye zvino nebasa iri rinozoita zvimwe zviito.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye chakaipa ndechekuti kana Vasya achida kubatanidza kuAmazon neimwe nzira, semuenzaniso, kushandisa shanduko yemamiriro ekunze, uye Petya anofarira kushandisa kiyi yake yakagovaniswa, yaainayo munzvimbo yakavanzika, saka haugone kutsanangura ese ari maviri mukati. Terraform. Uye kuti vasasangana nekutambura, hapana chikonzero chekuratidza ichi block mune module. Izvi zvinofanirwa kuratidzwa pamwero wepamusoro. Ndokunge, isu tine resource module, module yezvivakwa uye kuumbwa pamusoro. Uye izvi zvinofanirwa kuratidzwa kumwe kwakakwirira.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Huipi hwechipiri ndiye mupi. Pano zvakaipa hazvisi zvishoma, nokuti kana iwe ukanyora kodeti uye inoshanda kwauri, iwe unogona kufunga kuti kana ikashanda, saka sei uchinje.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Chakashata ndechekuti haugaro kudzora kuti mupi uyu achatangwa riini, chekutanga. Uye chechipiri, haudzore zvinorehwa neaws ec2, kureva kuti tiri kutaura nezve Linux kana Windows izvozvi. Saka haugone kunyora chimwe chinhu chinozoshanda zvakafanana pane akasiyana masisitimu anoshanda kana kune akasiyana evashandisi kesi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Muenzaniso wakajairika, uyo unoratidzwa muzvinyorwa zvepamutemo, ndewekuti kana ukanyora aws_instance uye uchitsanangura boka renharo, saka hapana chakaipa nazvo kana iwe ukatsanangura mupi we "local-exec" ipapo womhanyisa yako- playbook .

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Chokwadi, hongu, hapana chakaipa nazvo. Asi chaizvo munguva pfupi iwe unozoona kuti iyi yemuno-exec chinhu hachipo, semuenzaniso, mukuvhura_configuration.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye iwe paunoshandisa launch_configuration, uye iwe uchida kugadzira boka re autoscaling kubva pane imwe muenzaniso, ipapo mu launch_configuration hapana pfungwa ye "provisioner". Pane pfungwa ye "user data".

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Naizvozvo, imwe mhinduro yepasirese ndeye kushandisa data remushandisi. Uye ichatangwa ingave pane iyo muenzaniso pachayo, kana muenzaniso ukabatidzwa, kana mune imwecheteyo data data, apo boka reautoscaling rinoshandisa iyi launch_configuration.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kana iwe uchiri kuda kumhanyisa mugadziri, nekuti inhengo yegluing, kana imwe sosi yagadzirwa, panguva iyoyo unofanirwa kumhanyisa mupi wako, kuraira kwako. Kune akawanda emamiriro ezvinhu akadaro.

Uye iyo yakanyanya kurongeka sosi yeiyi inonzi null_resource. Null_resource ndeye dummy sosi iyo isina kumbobvira yagadzirwa. Izvo hazvibate chero chinhu, hapana API, hapana autoscaling. Asi zvinokutendera iwe kudzora nguva yekumhanyisa kuraira. Muchiitiko ichi, murairo unoitwa panguva yekusika.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

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

Pane zviratidzo zvakawanda. Ini handisi kuzopinda muzviratidzo zvese zvakadzama. Pane chinyorwa pamusoro peizvi. Asi kana iwe wakashanda neTerraform kana kushandisa mamwe mamodules evamwe vanhu, saka iwe wakamboona kuti akawanda mamodule, seakawanda ekodhi mune yakavhurika sosi, akanyorwa nevanhu kune zvavanoda. Mumwe murume akarinyora ndokugadzirisa chinetso chake. Ndakainamatira muGitHub, ngairarame. Ichararama, asi kana pasina zvinyorwa uye mienzaniso ipapo, saka hapana achaishandisa. Uye kana pasina kushanda kunokubvumira kugadzirisa zvishoma pane basa rayo chairo, saka hapana achaishandisa zvakare. Kune nzira dzakawanda dzekurasikirwa nevashandisi.

Kana iwe uchida kunyora chimwe chinhu kuitira kuti vanhu vashandise, saka ndinokurudzira kutevera zviratidzo izvi.

Izvi ndezvekuti:

  • Zvinyorwa uye mienzaniso.
  • Kushanda kwakakwana.
  • Zvinonzwisisika defaults.
  • Kodhi yakachena.
  • Miedzo.

Miedzo imamiriro akasiyana nekuti yakaoma kunyora. Ndinotenda zvakanyanya muzvinyorwa uye mienzaniso.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Saka, takatarisa maitiro ekunyora ma module. Pane nharo mbiri. Yokutanga, iyo inonyanya kukosha, haisi kunyora kana uchikwanisa, nokuti boka revanhu rakatoita mabasa aya pamberi pako. Uye chechipiri, kana iwe uchiri kusarudza, saka edza kusashandisa vanopa mumamodule uye vanopa.

Ichi ndicho chikamu chegrey chezvinyorwa. Unogona kunge wava kufunga kuti: β€œChimwe chinhu hachina kujeka. Handina chokwadi." Asi tichaona mumwedzi mitanhatu.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Zvino ngatitaure nezve nzira yekudaidza mamodule aya.

Isu tinonzwisisa kuti kodhi yedu inokura nekufamba kwenguva. Hatisisina faira rimwe chete, tatova nemafaira makumi maviri. Ose ari mune imwe folda. Kana kuti pamwe mumafolda mashanu. Pamwe isu tiri kutanga neimwe nzira kuaputsa nedunhu, nezvimwe zvikamu. Ipapo isu tinonzwisisa kuti ikozvino isu tine zvimwe rudiments yekuwiriranisa uye orchestration. Ndokunge, isu tinofanirwa kunzwisisa zvatinofanira kuita kana tikachinja network zviwanikwa, zvatinofanira kuita nezvimwe zviwanikwa zvedu, maitiro ekukonzeresa izvi zvinotsamira, nezvimwe.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Pane maviri akanyanyisa. Yekutanga yakanyanyisa ndeyese mune imwe. Tine imwe master file. Parizvino, iyi yaive yepamutemo yakanakisa tsika pane Terraform webhusaiti.

Asi ikozvino yakanyorwa seyakarambwa uye yakabviswa. Nokufamba kwenguva, nharaunda yeTerraform yakaziva kuti iyi yakanga iri kure nekuita kwakanakisisa, nokuti vanhu vakatanga kushandisa chirongwa nenzira dzakasiyana. Uye kune matambudziko. Semuenzaniso, kana isu tichinyora zvese zvinoenderana munzvimbo imwechete. Pane mamiriro ezvinhu patinodzvanya "Terraform chirongwa" uye kusvika Terraform yagadzirisa nyika dzezvese zviwanikwa, nguva yakawanda inogona kupfuura.

Nguva yakawanda ndeye, semuenzaniso, maminetsi mashanu. Kune vamwe iyi inguva yakawanda. Ndakaona zviitiko apo zvakatora maminitsi gumi nemashanu. Iyo AWS API yakapedza maminetsi gumi nemashanu ichiedza kufunga kuti chii chiri kuitika nemamiriro ega ega sosi. Iyi inzvimbo yakakura kwazvo.

Uye, zvakajairika, dambudziko rakabatana richaonekwa kana iwe uchida kushandura chimwe chinhu munzvimbo imwechete, wobva wamirira maminetsi gumi nemashanu, uye inokupa canvas yedzimwe shanduko. Iwe wakapfira mate, wakanyora kuti "Hongu", uye chimwe chinhu chakakanganisika. Uyu ndiwo muenzaniso chaiwo. Terraform haiedzi kukudzivirira kubva kumatambudziko. Kureva kuti, nyora zvaunoda. Pachava nematambudziko - matambudziko ako. Nepo Terraform 15 isiri kuyedza kukubatsira chero nzira. Kune dzimwe nzvimbo dzinonakidza mu 0.11 dzinokutendera kuti uti: "Vasya, iwe unonyatsoda izvi, unogona here kupengenuka?"

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Nzira yechipiri ndeyekuderedza nzvimbo iyi, ndiko kuti, nhare kubva kune imwe nzvimbo inogona kuva shoma yakabatana kubva kune imwe nzvimbo.

Dambudziko chete nderekuti iwe unofanirwa kunyora yakawanda kodhi, i.e. iwe unofanirwa kutsanangura zvinosiyana muhuwandu hukuru hwemafaira uye kugadzirisa izvi. Vamwe vanhu havazvifariri. Izvi zvakajairika kwandiri. Uye vamwe vanhu vanofunga: "Sei kunyora izvi munzvimbo dzakasiyana, ndinozviisa munzvimbo imwechete." Izvi zvinogoneka, asi iyi ndiyo yechipiri yakanyanyisa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ndiani ane zvese izvi zvinogara munzvimbo imwe? Mumwe, vaviri, vatatu vanhu, kureva kuti, mumwe munhu ari kushandisa.

Uye ndiani anodana chimwe chikamu, bhuroka rimwe kana imwe moduli yezvivakwa? Vanhu vashanu kusvika vanomwe. Izvi zvakanaka.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Mhinduro yakajairika pane imwe nzvimbo pakati. Kana iyo purojekiti yakakura, saka iwe unowanzo kuve nemamiriro ezvinhu apo pasina mhinduro yakakodzera uye kwete zvese zvinoshanda kunze uko, saka unopedzisira uine musanganiswa. Hapana chakaipa pane izvi, chero iwe uchinzwisisa kuti zvese zvine zvakanakira.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kana chimwe chinhu chachinja mustack VPC uye iwe waida kuisa shanduko idzi kuEC2, kureva kuti waida kuvandudza boka reautoscaling nekuti wanga uine subnet nyowani, ini ndinodaidza rudzi urwu rwekutsamira orchestration. Pane dzimwe mhinduro: ndiani anoshandisa chii?

Ndinogona kupa mhinduro dziripo. Unogona kushandisa Terraform kuita mashiripiti, kana unogona kushandisa makefiles kushandisa Terraform. Uye ona kana chimwe chinhu chachinja ipapo, unogona kuchivhura pano.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Unoda sei sarudzo iyi? Pane anotenda kuti iyi imhinduro yakanaka here? Ndinoona kunyemwerera, sezviri pachena kukahadzika kwapinda.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Zvechokwadi, usaedza izvi kumba. Terraform haina kumbogadzirwa kuti imhanye kubva kuTerraform.

Pane mumwe mushumo vakandiudza kuti: β€œAiwa, izvi hazvishande.” Chiripo ndechekuti haifanire kushanda. Kunyangwe zvichitaridzika zvakanyanya kana iwe uchigona kuvhura Terraform kubva kuTerraform, uyezve Terraform, haufanirwe kuzviita. Terraform inofanira kugara ichitanga zviri nyore.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

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

Kana iwe uchida kufona orchestration kana chimwe chinhu chachinja munzvimbo imwechete, saka kune Terragrunt.

Terragrunt chinhu chinoshandiswa, chinowedzera kuTerraform, chinokutendera kuti urongedze uye urongedze mafoni kumamodule module.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iyo yakajairika Terraform yekumisikidza faira inoita seizvi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iwe unotsanangura kuti ndeipi module yaunoda kufonera.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ndezvipi zvinotsamira pane iyo module?

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye ndedzipi nharo dzinogamuchirwa module iyi. Ndizvo chete zviripo kuziva nezveTerragrunt.

Zvinyorwa zviripo, uye kune 1 nyeredzi paGitHub. Asi kazhinji izvi ndizvo zvaunofanira kuziva. Uye izvi zviri nyore kwazvo kuita mumakambani ari kungotanga kushanda neTerraform.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Saka orchestration inonzi Terragrunt. Pane zvimwe zvingasarudzwa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Zvino ngatitaure nezve maitiro ekushanda nekodhi.

Kana iwe uchida kuwedzera zvitsva kukodhi yako, kazhinji izvi zviri nyore. Iwe uri kunyora sosi nyowani, zvese zviri nyore.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kana iwe uine imwe sosi yawakagadzira pamberi, semuenzaniso, iwe wakadzidza nezve Terraform mushure mekunge wavhura account yeAWS uye uchida kushandisa zviwanikwa zvawagara uinazvo, saka zvingave zvakakodzera kuti uwedzere module yako nenzira iyi, inotsigira kushandiswa kwezvinhu zviripo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye yakatsigira kusikwa kwezviwanikwa zvitsva uchishandisa iyo block sosi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Pakubuda tinogara tichidzosera id yekubuda zvichienderana nezvaishandiswa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Dambudziko rechipiri rakakosha muTerraform 0.11 riri kushanda nemazita.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Chinonetsa ndechekuti kana isu tine rondedzero yakadai yevashandisi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye kana isu tichigadzira vashandisi ava vachishandisa block resource, ipapo zvese zvinofamba zvakanaka. Isu tinopfuura nepakati pese runyorwa, tichigadzira faira kune yega yega. Zvese zvakanaka. Uye zvino, semuenzaniso, mushandisi3, uyo ari pakati, anofanira kubviswa kubva pano, ipapo zviwanikwa zvese zvakasikwa mushure make zvichagadzirwazve nekuti index ichachinja.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kushanda nemazita munzvimbo ine stateful. Chii chinonzi mamiriro ehurumende? Aya ndiwo mamiriro ezvinhu apo kukosha kutsva kunogadzirwa kana chitubu ichi chagadzirwa. Semuenzaniso, AWS Access Key kana AWS Chakavanzika Kiyi, i.e. patinogadzira mushandisi, tinogashira nyowani Access kana Chakavanzika Key. Uye pese patinodzima mushandisi, mushandisi uyu anenge aine kiyi nyowani. Asi iyi haisi feng shui, nokuti mushandisi haazodi kushamwaridzana nesu kana tikagadzira mushandisi mutsva kwaari nguva dzose kana mumwe munhu asiya timu.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iyi ndiyo mhinduro. Iyi kodhi yakanyorwa muJsonnet. Jsonnet mutauro wekuyedza kubva kuGoogle.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uyu murairo unokutendera kuti ugamuchire iyi template uye sekubuda kwayo inodzosera json faira rinogadzirwa zvinoenderana netemplate yako.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Iyo template inoita seizvi.

Terraform inokutendera kuti ushande neHCL neJson nenzira imwechete, saka kana uchikwanisa kugadzira Json, saka unogona kutsvedza muTerraform. Iro faira rine .tf.json rinozodhaunirodwa zvakabudirira.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye isu tinoshanda nayo semazuva ese: terraform init, terramorm inoshanda. Uye isu tinogadzira vashandisi vaviri.

Iye zvino isu hatityi kana mumwe munhu akasiya timu. Isu tichangogadzirisa iyo json faira. Vasya Pupkin akasiya, Petya Pyatochkin akasara. Petya Pyatochkin haazogamuchiri kiyi itsva.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Kubatanidza Terraform nemamwe maturusi harisi chairo basa reTerraform. Terraform yakagadzirwa sepuratifomu yekugadzira zviwanikwa uye ndizvozvo. Uye zvese zvinouya gare gare hazvisi zvekunetsekana naTerraform. Uye hapana chikonzero chekururuka imomo. Pane Ansible, anoita zvese zvaunoda.

Asi mamiriro ezvinhu anomuka kana tichida kuwedzera Terraform uye kufonera imwe kuraira mushure mekunge chimwe chinhu chapera.

Nzira yekutanga. Isu tinogadzira chinobuda kwatinonyora murairo uyu.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Uye tobva tadaidza uyu murairo kubva kune shell terraform kubuda uye tsanangura kukosha kwatinoda. Nokudaro, murairo unoitwa nezvose zvinotsiviwa. Yakanyanya kugadzikana.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Nzira yechipiri. Uku ndiko kushandiswa kwe null_resource zvichienderana neshanduko muzvivako zvedu. Tinogona kufonera yakafanana yemuno-exe nekukurumidza ID yeimwe sosi yachinja.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Nomuzvarirwo, izvi zvese zvakatsetseka pabepa, nekuti Amazon, sevamwe vese vanopa veruzhinji, ine boka remakesi ayo ekumucheto.

Iyo inonyanya kuzivikanwa edge kesi ndeyekuti iwe paunovhura account yeAWS, zvine basa kuti ndeapi matunhu aunoshandisa; chinhu ichi chinogoneswa ipapo; pamwe wakaivhura mushure meZvita 2013; pamwe uri kushandisa default muVPC etc. Pane zvakawanda zvinorambidzwa. Uye Amazon yakavaparadzira mukati mezvinyorwa.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Pane zvinhu zvishoma zvandinokurudzira kudzivisa.

Kutanga, dzivirira nharo dzese dzisiri dzepachivande mukati meTerraform chirongwa kana Terraform CLI. Zvese izvi zvinogona kuiswa mune tfvars faira kana mune inosiyana nharaunda.

Asi iwe haufanire kubata nemusoro iyi yese mashiripiti kuraira. Terraform chirongwa - var uye tobva taenda. Mutsauko wekutanga unonzi var, wechipiri unonzi var, wechitatu, wechina. Nheyo inonyanya kukosha yezvivakwa sekodhi yandinoshandisa kazhinji ndeyekuti nekungotarisa iyo kodeti, ndinofanira kuve nekunzwisisa kwakajeka kwezvinoiswa ipapo, mune mamiriro uye neapi maitiro. Uye saka ini handifanire kuverenga zvinyorwa kana kubvunza Vasya kuti ndeapi maparamita aakashandisa kugadzira sumbu redu. Ini ndinongoda kuvhura faira ine tfvars yekuwedzera, iyo inowanzoenderana nenharaunda, uye tarisa pane zvese zviripo.

Zvakare, usashandise zvinonangwa nharo kuderedza chiyero. Nokuda kweizvi zviri nyore zvikuru kushandisa maduku maduku modules.

Zvakare, hapana chikonzero chekumisa uye kuwedzera parallelism. Kana ndine 150 zviwanikwa uye ndinoda kuwedzera Amazon parallelism kubva default 10 kusvika 100, saka kazhinji chimwe chinhu chichakanganisika. Kana kuti zvinogona kufamba zvakanaka izvozvi, asi Amazon painoti urikufona dzakawandisa, unenge uri mudambudziko.

Terraform inoedza kutangazve mazhinji ematambudziko aya, asi hapana chaunowana. Parallelism = 1 chinhu chakakosha kushandisa kana ukagumburwa pane imwe bug mukati meAWS API kana mukati meTerraform mupi. Uye ipapo iwe unofanirwa kutsanangura: parallelism = 1 uye kumirira kusvika Terraform yapedza kufona kumwe chete, kozoita yechipiri, kozoita yechitatu. Achavabudisa mumwe-mumwe.

Vanhu vanowanzondibvunza, "Nei ndichifunga kuti nzvimbo dzekushandira dzeTerraform dzakaipa?" Ini ndinotenda musimboti wezvivakwa sekodhi ndeyekuona kuti ndeapi masisitimu akagadzirwa uye neapi maitiro.

Nzvimbo dzekushanda hadzina kugadzirwa nevashandisi. Izvi hazvireve kuti vashandisi vakanyora muGitHub nyaya kuti isu hatigone kurarama tisina Terraform nzvimbo dzekushandira. Kwete kwete seizvi. Terraform Enterprise mhinduro yekutengesa. Terraform kubva kuHashiCorp yakafunga kuti taida nzvimbo dzekushandira, saka takaibvisa. Ndinoona zviri nyore kuisa mune imwe folda. Zvadaro pachava nemamwe mafaira zvishoma, asi zvichava zvakajeka.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Nzira yekushanda nekodhi? Kutaura zvazviri, kushanda nemazita ndiwo chete marwadzo. Uye tora Terraform nyore. Ichi hachisi chinhu chinokuitira zvese zvikuru. Hapana chikonzero chekusaidzira zvese zvakanyorwa mugwaro imomo.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Musoro wemushumo wakanyorwa "zvemangwana." Ndichataura nezvazvo muchidimbu. Kune ramangwana, izvi zvinoreva kuti 0.12 ichaburitswa munguva pfupi.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

0.12 itani yezvinhu zvitsva. Kana iwe uchibva kuchirongwa chenguva dzose, saka unopotsa marudzi ese ezvivharo zvine simba, zvishwe, kwakaringana uye zvine mamiriro ekuenzanisa mashandiro, uko kuruboshwe nekurudyi mativi haaverengerwe panguva imwe chete, asi zvichienderana nemamiriro ezvinhu. Iwe unozvisuwa zvakanyanya, saka 0.12 ichazvigadzirisa iwe.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Asi! Kana iwe ukanyora zvishoma uye zvakanyanya nyore, uchishandisa akagadzirira-akagadzirwa mamodule uye yechitatu-bato mhinduro, saka haufanirwe kumirira uye kutarisira kuti 0.12 ichauya uye ichagadzirisa zvese kwauri.

Tsanangudzo yezvivakwa muTerraform yenguva yemberi. Anton Babenko (2018)

Ndatenda neshumo! Iwe wakataura nezve zvivakwa sekodhi uye wakataura izwi rimwe chete nezve bvunzo. Miedzo inodiwa mumamodule here? Basa raani iri? Ndinofanira kuzvinyora pachangu here kana kuti ibasa ramamodule?

Gore rinotevera richazadzwa nemishumo yekuti takasarudza kuyedza zvese. Chii chekuedza ndiwo mubvunzo mukuru. Kune zvakawanda zvinotsamira, zvakawanda zvinorambidzwa kubva kune vakasiyana vanopa. Kana iwe neni tichitaura uye iwe uchiti: "Ndinoda bvunzo," ini ndobvunza kuti: "Muchayedza chii?" Iwe unoti uchaedza munharaunda yako. Ndobva ndati izvi hazvishande mudunhu mangu. Ndiko kuti, isu hatitombokwanisi kubvumirana pane izvi. Tisingarevi kuti kune akawanda ehunyanzvi matambudziko. Ndiko kuti, manyorerwo ebvunzo idzi kuti dzikwane.

Ndiri kushingairira kutsvagira nyaya iyi, kureva maitiro ekugadzira otomatiki bvunzo zvichienderana neiyo hurongwa hwawakanyora. Ndokunge, kana iwe wakanyora iyi kodhi, saka ini ndinofanira kuimhanyisa, zvichibva pane izvi ndinogona kugadzira bvunzo.

Terrates ndeimwe yeanonyanya kutaurwa maraibhurari ayo anobvumidza iwe kunyora bvunzo dzekubatanidza dzeTerraform. Ichi ndicho chimwe chezvishandiso. Ini ndinosarudza iyo DSL mhando, semuenzaniso, rspec.

Anton, ndatenda nemushumo! Ini ndinonzi Valery. Rega ndibvunze kamubvunzo kehuzivi. Pane, nemamiriro ezvinhu, kupa, kune kutumirwa. Kugovera kunogadzira zvivakwa zvangu, mukutumirwa tinoizadza nechinhu chinobatsira, semuenzaniso, maseva, maapplication, nezvimwe. Uye zviri mumusoro mangu kuti Terraform inonyanya kugovera, uye Ansible yakawanda yekutumirwa, nekuti Ansible zvakare ndeye yemuviri Iyo inokubvumira kuisa nginx, Postgres. Asi panguva imwe chete, Ansible inoita seinobvumira kupa, semuenzaniso, yeAmazon kana Google zviwanikwa. Asi Terraform zvakare inobvumidza iwe kuendesa imwe software uchishandisa mamodule ayo. Kubva pamaonero ako, pane imwe mhando yemuganho inomhanya pakati peTerraform neAnsible, kupi uye chii chiri nani kushandisa? Kana, semuenzaniso, iwe unofunga kuti Ansible yatova marara, iwe unofanirwa kuedza kushandisa Terraform kune zvese?

Mubvunzo wakanaka, Valery. Ndinotenda kuti Terraform haina kuchinja maererano nechinangwa kubvira 2014. Yakagadzirirwa zvivakwa uye yakafira zvivakwa. Isu tichiri uye tichava nekuda kwekugadzirisa manejimendi Ansible. Dambudziko nderekuti pane data remushandisi mukati launch_configuration. Uye ipapo iwe unodhonza Ansible, nezvimwewo. Uyu ndiwo mutsauko wandinoda zvakanyanya.

Kana isu tichitaura nezvayo mune yakanaka zvivakwa, saka kune zvinoshandiswa senge Packer zvinounganidza uyu mufananidzo. Uye ipapo Terraform inoshandisa iyo data sosi kuwana iyi mufananidzo uye kugadzirisa yayo launch_configuration. Kureva, nenzira iyi pombi ndeyekuti isu tinotanga tadhonza Tracker, tozodhonza Terraform. Uye kana kuvaka kukaitika, ipapo shanduko itsva inoitika.

Mhoro! Ndatenda neshumo! Zita rangu ndiMisha, kambani yeRBS. Unogona kufonera Ansible kuburikidza neanopa kana uchigadzira sosi. Ansible inewo musoro unonzi dynamic inventory. Uye iwe unogona kutanga wafonera Terraform, wobva wafonera Ansible, iyo inozotora zviwanikwa kubva kuhurumende nekuzviita. Chii chiri nani?

Vanhu vanoshandisa zvose nekubudirira kwakaenzana. Zvinoita kwandiri kuti inventory ine simba muAnsible chinhu chiri nyore, kana tisiri kutaura nezve autoscaling boka. Nekuti muboka reautoscaling tatova neturusi rekushandisa, iro rinonzi launch_configuration. Mukutanga_configuration tinorekodha zvese zvinoda kutangwa kana tagadzira chitubu chitsva. Naizvozvo, neAmazon, kushandisa simba rekuverenga uye kuverenga iyo Terraform ts faira, mumaonero angu, yakawandisa. Uye kana iwe ukashandisa mamwe maturusi uko pasina pfungwa ye "autoscaling boka", semuenzaniso, iwe unoshandisa DigitalOcean kana mumwe mupi wekupa uko pasina autoscaling boka, ipapo iwe uchafanirwa kudhonza nemaoko API, kutsvaga IP kero, kugadzira. a dynamic inventory file , uye Ansible achatodzungaira mazviri. Ndokunge, kuAmazon kune launch_configuration, uye kune zvimwe zvese kune simba rekugadzira.

Source: www.habr.com

Voeg