Likotsi tsa Terraform

Likotsi tsa Terraform
Ha re totobatseng maraba a 'maloa, ho kenyelletsa le a amanang le loops, haeba lipolelo le mekhoa ea ho tsamaisa, hammoho le litaba tse akaretsang tse amang Terraform ka kakaretso:

  • palo le bakeng sa_e 'ngoe le e' ngoe e na le meeli;
  • fokotsa nako ea ho fokotsa nako ea zero;
  • esita le morero o motle o ka hloleha;
  • refactoring e ka ba le maraba a eona;
  • Khokahano e chechisetsoang morao e ea tsamaellana... ka khithiso.

The count and for_ea-e 'ngoe le li-parameter li na le mefokolo

Mehlala e khaolong ena e sebelisa haholo palo ea paramethara le polelo ea_e 'ngoe le e 'ngoe ho loops le logic ea maemo. Ba sebetsa hantle, empa ba na le mefokolo e 'meli ea bohlokoa eo u lokelang ho e ela hloko.

  • Bala le bakeng sa_e 'ngoe e ke ke ea bua ka mefuta efe kapa efe e hlahisoang ke lisebelisoa.
  • count le bakeng sa_e 'ngoe e ke ke ea sebelisoa ho tlhophiso ea mojule.

count le bakeng sa_e 'ngoe e ke ke ea bua ka mefuta efe kapa efe e hlahisoang ke lisebelisoa

Ak'u nahane u hloka ho kenya li-server tse 'maloa tsa EC2 mme ka mabaka a itseng ha u batle ho sebelisa ASG. Khoutu ea hau e ka ba tjena:

resource "aws_instance" "example_1" {
   count             = 3
   ami                = "ami-0c55b159cbfafe1f0"
   instance_type = "t2.micro"
}

A re ba shebeng ka bonngoe.

Kaha parameter ea palo e behiloe ho boleng bo tsitsitseng, khoutu ena e tla sebetsa ntle le mathata: ha o tsamaisa taelo ea kopo, e tla etsa li-server tse tharo tsa EC2. Empa ho thoe'ng haeba u batla ho kenya seva e le 'ngoe sebakeng se seng le se seng sa Availability Zone (AZ) sebakeng sa hau sa hajoale sa AWS? U ka etsa hore khoutu ea hau e laole lethathamo la libaka ho tsoa mohloling oa data oa aws_availability_zones ebe u kena ka har'a e 'ngoe le e' ngoe ebe u theha seva ea EC2 ho eona u sebelisa paramethara ea palo le phihlello ea index:

resource "aws_instance" "example_2" {
   count                   = length(data.aws_availability_zones.all.names)
   availability_zone   = data.aws_availability_zones.all.names[count.index]
   ami                     = "ami-0c55b159cbfafe1f0"
   instance_type       = "t2.micro"
}

data "aws_availability_zones" "all" {}

Khoutu ena le eona e tla sebetsa hantle, kaha parameter ea lipalo e ka supa mehloli ea data ntle le mathata. Empa ho etsahala'ng haeba palo ea li-server tseo u lokelang ho li etsa li itšetlehile ka tlhahiso ea mohloli o itseng? Ho bontša sena, tsela e bonolo ka ho fetisisa ke ho sebelisa random_integer resource, eo, joalo ka ha lebitso le fana ka maikutlo, e khutlisetsang palo e sa reroang:

resource "random_integer" "num_instances" {
  min = 1
  max = 3
}

Khoutu ena e hlahisa nomoro e sa reroang lipakeng tsa 1 le 3. Ha re boneng hore na ho etsahala'ng haeba re leka ho sebelisa tlhahiso ea sesebelisoa sena ho palo ea paramethara ea mohloli oa aws_instance:

resource "aws_instance" "example_3" {
   count             = random_integer.num_instances.result
   ami                = "ami-0c55b159cbfafe1f0"
   instance_type = "t2.micro"
}

Haeba o tsamaisa moralo oa terraform khoutung ena, o tla fumana phoso e latelang:

Error: Invalid count argument

   on main.tf line 30, in resource "aws_instance" "example_3":
   30: count = random_integer.num_instances.result

The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the count depends on.

Terraform e hloka hore ho baloe le ho_e 'ngoe le e 'ngoe e baloe nakong ea moralo, pele lisebelisoa life kapa life li etsoa kapa li fetoloa. Sena se bolela hore palo le bakeng sa_e 'ngoe le e' ngoe e ka bua ka li-literals, mefuta-futa, mehloli ea data, esita le lethathamo la lisebelisoa (ha feela bolelele ba tsona bo ka khethoa ka nako ea ho hlophisa), empa eseng ho mefuta e fapaneng ea tlhahiso ea lisebelisoa.

count le bakeng sa_e 'ngoe e ke ke ea sebelisoa ho tlhophiso ea mojule

Ka letsatsi le leng u ka 'na ua ba tekong ea ho eketsa palo ea palo ho tlhophiso ea mojule oa hau:

module "count_example" {
     source = "../../../../modules/services/webserver-cluster"

     count = 3

     cluster_name = "terraform-up-and-running-example"
     server_port = 8080
     instance_type = "t2.micro"
}

Khoutu ena e leka ho sebelisa palo ka har'a mojule ho etsa likopi tse tharo tsa sesebelisoa sa "webserver-cluster". Kapa u ka rata ho etsa hore ho hokeloe mojule e be khetho ea boikhethelo ho latela maemo a Boolean ka ho beha paramethara ea eona ho 0. Sena se kanna sa shebahala joalo ka khoutu e utloahalang, empa o tla fumana phoso ena ha o etsa moralo oa terraform:

Error: Reserved argument name in module block

   on main.tf line 13, in module "count_example":
   13: count = 3

The name "count" is reserved for use in a future version of Terraform.

Ka bomalimabe, ho tloha ka Terraform 0.12.6, ho sebelisa count kapa ho_e 'ngoe le e' ngoe mohloling oa mojulu ha hoa tšehetsoa. Ho ea ka lintlha tsa tokollo tsa Terraform 0.12 (http://bit.ly/3257bv4), HashiCorp e rera ho eketsa bokhoni bona nakong e tlang, kahoo ho itšetlehile ka hore na u bala buka ena neng, e ka 'na eaba e se e fumaneha. Ho tseba hantle, bala Terraform changelog mona.

Meeli ea ho sebelisoa ha Zero Downtime

Ho sebelisa block_before_destroy block hammoho le ASG ke tharollo e ntle ea ho theha li-deployments tsa zero-downtime, ntle le caveat e le 'ngoe: melao ea autoscaling ha e tšehetsoe. Kapa ho nepahala haholoanyane, sena se khutlisetsa boholo ba ASG ho min_size ho thomello e 'ngoe le e' ngoe, e ka bang bothata haeba u ne u sebelisa melao ea autoscaling ho eketsa palo ea li-server tse sebetsang.

Ka mohlala, mochine oa "webserver-cluster" o na le lisebelisoa tse peli tsa aws_autoscaling_schedule, tseo ka 9 hoseng li eketsang palo ea li-server ho sehlopha ho tloha ho tse peli ho isa ho tse leshome. Haeba u qala, e re, 11 hoseng, ASG e ncha e tla qala ka li-server tse peli feela ho e-na le tse leshome 'me e lule e le joalo ho fihlela ka 9 hoseng letsatsing le hlahlamang.

Moeli ona o ka qojoa ka litsela tse ngata.

  • Fetola paramethara ea ho ipheta ho aws_autoscaling_schedule ho tloha ho 0 9 * * * (“matha ka 9 am”) ho ea ho ntho e kang 0-59 9-17 * * * (“matha motsotso o mong le o mong ho tloha ka 9 hoseng ho isa ho 5 pm”). Haeba ASG e se e na le li-server tse leshome, ho sebelisa molao ona oa autoscaling hape ho ke ke ha fetola letho, ke seo re se batlang. Empa haeba ASG e sa tsoa sebelisoa, molao ona o tla etsa bonnete ba hore ka nako e telele palo ea lisebelisoa tsa eona e tla fihla ho leshome. Ena ha se mokhoa o motle ka ho felletseng, mme ho tlola ho hoholo ho tloha ho li-server tse leshome ho isa ho tse peli le morao ho ka baka mathata ho basebelisi.
  • Theha sengoloa sa tloaelo se sebelisang AWS API ho fumana palo ea li-server tse sebetsang ho ASG, e letse u sebelisa mohloli oa data o kantle (sheba "External Data Source" leqepheng la 249), 'me u behe paramethara ea wished_capacity ea ASG ho boleng bo khutlisitsoeng ke mongolo. Ka tsela ena, mohlala o mong le o mong o mocha oa ASG o tla lula o sebetsa ka mokhoa o ts'oanang le khoutu e teng ea Terraform mme e etsa hore ho be thata ho e boloka.

Ehlile, Terraform e ka be e bile le ts'ehetso e hahelletsoeng bakeng sa li-deployments tsa zero-downtime, empa ho tloha ka Mots'eanong 2019, sehlopha sa HashiCorp se ne se sena merero ea ho eketsa ts'ebetso ena (lintlha - mona).

Morero o nepahetseng o ka 'na oa se ke oa atleha

Ka nako e 'ngoe taelo ea moralo e hlahisa moralo o nepahetseng oa ho tsamaisa, empa taelo ea kopo e khutlisa phoso. Ka mohlala, leka ho kenya sesebelisoa sa aws_iam_user ka lebitso le tšoanang le leo u le sebelisitseng bakeng sa mosebelisi oa IAM eo u mo entseng pejana Khaolong ea 2:

resource "aws_iam_user" "existing_user" {
   # Подставьте сюда имя уже существующего пользователя IAM,
   # чтобы попрактиковаться в использовании команды terraform import
   name = "yevgeniy.brikman"
}

Joale, haeba u tsamaisa taelo ea moralo, Terraform e tla hlahisa moralo o bonahalang o utloahala oa ho tsamaisa:

Terraform will perform the following actions:

   # aws_iam_user.existing_user will be created
   + resource "aws_iam_user" "existing_user" {
         + arn                  = (known after apply)
         + force_destroy   = false
         + id                    = (known after apply)
         + name               = "yevgeniy.brikman"
         + path                 = "/"
         + unique_id         = (known after apply)
      }

Plan: 1 to add, 0 to change, 0 to destroy.

Haeba o tsamaisa application command o tla fumana phoso e latelang:

Error: Error creating IAM User yevgeniy.brikman: EntityAlreadyExists:
User with name yevgeniy.brikman already exists.

   on main.tf line 10, in resource "aws_iam_user" "existing_user":
   10: resource "aws_iam_user" "existing_user" {

Bothata, ehlile, ke hore mosebelisi oa IAM ea nang le lebitso leo o se a ntse a le teng. 'Me sena se ka etsahala eseng feela ho basebelisi ba IAM, empa ho hoo e ka bang mohloli ofe kapa ofe. Ho ka etsahala hore ebe motho e mong o thehile sesebelisoa sena ka letsoho kapa a sebelisa mohala oa taelo, empa ka tsela efe kapa efe, ho tsamaisana le li-ID ho lebisa likhohlanong. Ho na le mefuta e mengata ea phoso ena e atisang ho tšoasa batho ba sa tsoa fihla Terraform ka tšohanyetso.

Taba ea bohlokoa ke hore taelo ea moralo oa terraform e nka feela lisebelisoa tse boletsoeng faeleng ea mmuso ea Terraform. Haeba lisebelisoa li bōpiloe ka tsela e 'ngoe (mohlala, ka letsoho ka ho tobetsa ho AWS console), li ke ke tsa qetella li le faeleng ea' muso, kahoo Terraform e ke ke ea e ela hloko ha e phethahatsa taelo ea moralo. Ka lebaka leo, moralo o bonahalang o nepahetse qalong o tla fetoha o sa atlehe.

Ho na le lithuto tse peli tse ka ithutoang ho sena.

  • Haeba u se u qalile ho sebetsa le Terraform, u se ke ua sebelisa letho le leng. Haeba karolo ea lisebelisoa tsa hau tsa motheo e laoloa ho sebelisoa Terraform, u ke ke ua hlola u e fetola ka letsoho. Ho seng joalo, ha u ipehe kotsing ea liphoso tse makatsang tsa Terraform, empa hape u hlokomoloha melemo e mengata ea IaC kaha khoutu ha e sa tla hlola e e-ba pontšo e nepahetseng ea lisebelisoa tsa hau tsa motheo.
  • Haeba u se u ntse u e-na le lisebelisoa tse itseng, sebelisa taelo ea ho reka thepa. Haeba u qala ho sebelisa Terraform ka lisebelisoa tse teng, u ka e kenya faeleng ea naha u sebelisa taelo ea ho kenya terraform. Ka tsela ena Terraform e tla tseba hore na ke lisebelisoa life tse lokelang ho laoloa. Taelo ea ho kenya e nka lintlha tse peli. Ea pele ke aterese ea lisebelisoa lifaeleng tsa hau tsa tlhophiso. Syntax mona e tšoana le ea lihokelo tsa lisebelisoa: _. (joaloka aws_iam_user.exist_user). Khang ea bobeli ke ID ea sesebelisoa se tlang ho tlisoa kantle ho naha. Ha re re ID ea mohlodi aws_iam_user ke lebitso la mosebedisi (ka mohlala, yevgeniy.brikman), mme ID ya mohlodi aws_instance ke EC2 seva ID (jwalo ka i-190e22e5). Mokhoa oa ho tlisa mohloli hangata o bontšoa litokomaneng tse ka tlase ho leqephe la eona.

    Ka tlase ke taelo ea ho reka thepa e hokahanyang sesebelisoa sa aws_iam_user seo u se kentseng litlhophisong tsa hau tsa Terraform hammoho le mosebelisi oa IAM Khaolong ea 2 (ho beha lebitso la hau bakeng sa yevgeniy.brikman, ehlile):

    $ terraform import aws_iam_user.existing_user yevgeniy.brikman

    Terraform e tla letsetsa AWS API ho fumana mosebelisi oa hau oa IAM le ho theha kamano ea faele ea mmuso lipakeng tsa eona le mohlodi aws_iam_user.existing_user tokisong ea Terraform. Ho tloha joale ho ea pele, ha u tsamaisa taelo ea moralo, Terraform e tla tseba hore mosebelisi oa IAM o se a ntse a le teng mme a ke ke a leka ho e etsa hape.

    Ke habohlokoa ho hlokomela hore haeba u se u ntse u e-na le lisebelisoa tse ngata tseo u batlang ho li kenya ho Terraform, ho ngola khoutu ka letsoho le ho kenya e 'ngoe le e' ngoe ka nako e ka ba bothata. Kahoo ho bohlokoa ho sheba sesebelisoa se kang Terraforming (http://terraforming.dtan4.net/), se ka kenyang khoutu ka bohona le ho bolela ho tsoa akhaonteng ea hau ea AWS.

    Refactoring e ka ba le maraba a eona

    Refactoring ke mokhoa o tloaelehileng oa ho etsa mananeo moo u fetolang sebopeho sa ka hare sa khoutu ha u ntse u siea boitšoaro ba ka ntle bo sa fetohe. Sena ke ho etsa hore khoutu e hlake haholoanyane, e be makhethe, 'me ho be bonolo ho e hlokomela. Refactoring ke mokhoa oa bohlokoahali o lokelang ho sebelisoa khafetsa. Empa ha ho tluoa tabeng ea Terraform kapa sesebelisoa leha e le sefe sa IaC, u tlameha ho ba hlokolosi haholo ka seo u se bolelang ka "boitšoaro ba ka ntle" ba karolo ea khoutu, ho seng joalo mathata a sa lebelloang a tla hlaha.

    Ka mohlala, mofuta o tloaelehileng oa refactoring ke oa ho fetola mabitso a mefuta-futa kapa mesebetsi ka a utloahalang haholoanyane. Li-IDE tse ngata li na le tšehetso e hahelletsoeng bakeng sa ho nchafatsa 'me li ka reha mabitso a fapaneng le mesebetsi ho pholletsa le projeke. Ka lipuo tse sebelisoang ka kakaretso, ona ke ts'ebetso e nyane eo u kanna oa se nahane ka eona, empa ho Terraform u tlameha ho ba hlokolosi haholo ka sena, ho seng joalo u ka ba le mathata.

    Mohlala, mojule oa "webserver-cluster" o na le "input variable cluster_name":

    variable "cluster_name" {
       description = "The name to use for all the cluster resources"
       type          = string
    }

    Nka hore u qalile ho sebelisa mojule ona ho tsamaisa microservice e bitsoang foo. Hamorao, o batla ho reha tšebeletso ea hau ho bareng. Phetoho ena e ka bonahala e se letho, empa ha e le hantle e ka baka tšitiso ea litšebeletso.

    Taba ke hore mojule oa "webserver-cluster" o sebelisa "cluster_name variable" ho lisebelisoa tse 'maloa, ho kenyelletsa le paramente ea mabitso a lihlopha tse peli tsa ts'ireletso le ALB:

    resource "aws_lb" "example" {
       name                    = var.cluster_name
       load_balancer_type = "application"
       subnets = data.aws_subnet_ids.default.ids
       security_groups      = [aws_security_group.alb.id]
    }

    Haeba u fetola paramente ea lebitso mohloling, Terraform e tla hlakola mofuta oa khale oa sesebelisoa ebe e theha e ncha sebakeng sa eona. Empa haeba sesebelisoa seo e le ALB, lipakeng tsa ho e hlakola le ho jarolla mofuta o mocha, u ke ke ua ba le mokhoa oa ho tsamaisa sephethephethe ho seva sa hau sa marang-rang. Ka mokhoa o ts'oanang, haeba sehlopha sa ts'ireletso se hlakotsoe, li-server tsa hau li tla qala ho hana sephethephethe leha e le sefe sa marang-rang ho fihlela sehlopha se secha se thehoa.

    Mofuta o mong oa refactoring oo u ka o ratang ke ho fetola ID ea Terraform. Ha re nke mohlala oa aws_security_group moduli oa sehlopha sa webserver-cluster:

    resource "aws_security_group" "instance" {
      # (...)
    }

    Sekhetho sa mohloli ona se bitsoa mohlala. Ak'u nahane hore nakong ea refactoring u nkile qeto ea ho e fetola hore e be e utloisisoang haholoanyane (ho ea ka maikutlo a hau) cluster_instance:

    resource "aws_security_group" "cluster_instance" {
       # (...)
    }

    Ho tla etsahala’ng qetellong? Ke hantle: tshitiso.

    Terraform e amahanya ID ka 'ngoe ea lisebelisoa le ID ea mofani oa maru. Mohlala, iam_user e amahanngoa le ID ea mosebelisi ea AWS IAM, 'me aws_instance e amahanngoa le ID ea seva sa AWS EC2. Haeba u fetola ID ea sesebelisoa (e re ho tloha mohlala ho ea ho cluster_instance, joalo ka ha ho le joalo ka aws_security_group), ho ea Terraform ho tla bonahala eka u hlakotse mohloli oa khale ebe u eketsa o mocha. Haeba o sebelisa liphetoho tsena, Terraform e tla hlakola sehlopha sa khale sa ts'ireletso ebe se theha se secha, ha li-server tsa hau li qala ho hana sephethephethe leha e le sefe sa marang-rang.

    Mona ke lintlha tse 'nè tsa bohlokoa tseo u lokelang ho li nka puisanong ena.

    • Kamehla sebelisa taelo ea moralo. E ka senola maraba ana kaofela. Hlahloba tlhahiso ea eona ka hloko 'me u ele hloko maemo ao Terraform e rerileng ho hlakola lisebelisoa tseo mohlomong li sa lokelang ho hlakoloa.
    • Etsa pele o hlakola. Haeba u batla ho khutlisa sesebelisoa, nahana ka hloko hore na u hloka ho etsa se seng pele u hlakola sa mantlha. Haeba karabo ke e, create_before_destroy e ka thusa. Sephetho se tšoanang se ka finyelloa ka letsoho ka ho etsa mehato e 'meli: qala ka ho eketsa mohloli o mocha ho tlhophiso ebe o tsamaisa taelo ea kopo, ebe o tlosa mohloli oa khale ho tlhophiso ebe o sebelisa taelo ea kopo hape.
    • Ho fetola li-identifiers ho hloka hore boemo bo fetohe. Haeba u batla ho fetola ID e amanang le sesebelisoa (mohlala, reha lebitso la aws_security_group ho tloha mohlala ho ea ho cluster_instance) ntle le ho hlakola sesebelisoa le ho theha mofuta o mocha oa sona, o tlameha ho nchafatsa faele ea boemo ba Terraform ka nepo. Le ka mohla u se ke ua etsa sena ka letsoho - sebelisa taelo ea boemo ba terraform. Ha u reha li-identifiers, u lokela ho tsamaisa taelo ea terraform state mv, e nang le syntax e latelang:
      terraform state mv <ORIGINAL_REFERENCE> <NEW_REFERENCE>

      ORIGINAL_REFERENCE ke poleloana e bolelang mohlodi ka sebopeho sa ona sa hajwale, mme NEW_REFERENCE ke moo o batlang ho o suthisetsa teng. Mohlala, ha o reha sehlopha sa aws_security_group ho tloha mohlala ho ea ho cluster_instance, o hloka ho tsamaisa taelo e latelang:

      $ terraform state mv 
         aws_security_group.instance 
         aws_security_group.cluster_instance

      Sena se bolella Terraform hore naha eo pele e neng e amahanngoa le aws_security_group.instance joale e lokela ho amahanngoa le aws_security_group.cluster_instance. Haeba ka mor'a ho reha le ho tsamaisa moralo ona oa terraform ha o bontše liphetoho leha e le life, joale u entse ntho e 'ngoe le e' ngoe ka nepo.

    • Litlhophiso tse ling li ke ke tsa fetoloa. Litekanyetso tsa lisebelisoa tse ngata ha li fetohe. Haeba u leka ho li fetola, Terraform e tla hlakola sesebelisoa sa khale ebe e theha e ncha sebakeng sa eona. Leqephe le leng le le leng la lisebelisoa hangata le tla bontša se etsahalang ha u fetola maemo a itseng, kahoo etsa bonnete ba hore u sheba litokomane. Kamehla sebelisa taelo ea moralo 'me u nahane ka ho sebelisa leano la create_before_destroy.

    Ho lumellana ho chechisetsoang morao hoa ts'oana... ka ho chechisoa

    Li-API tse ling tsa bafani ba maru, joalo ka AWS, ha li lumellane ebile li lieha ho sebetsa. Asynchrony e bolela hore sebopeho se ka khutlisa karabo hang-hang ntle le ho emela hore ketso e kopiloeng e phethe. Ho lieha ho tsitsa ho bolela hore liphetoho li ka nka nako ho ata ho pholletsa le sistimi; ha sena se ntse se etsahala, likarabelo tsa hau li kanna tsa se lumellane 'me li ipapisitse le hore na ke mohloli ofe oa data o arabang mehala ea hau ea API.

    Ka mohlala, nahana hore u letsetsa API ho AWS u e kopa ho theha seva sa EC2. API e tla khutlisetsa karabo "e atlehileng" (201 E bōpiloe) hoo e ka bang hang-hang, ntle le ho emela hore seva ka boeona e bōptjoe. Haeba u leka ho hokela ho eona hang-hang, e tla batla e hloleha hobane ka nako eo AWS e ntse e qala lisebelisoa kapa, ho seng joalo, seva ha e so qale. Ho feta moo, haeba u etsa mohala o mong ho fumana leseli ka seva sena, u ka fumana phoso (404 Ha e Fumane). Taba ke hore tlhahisoleseling mabapi le seva ena ea EC2 e kanna ea phatlalatsoa ho pholletsa le AWS pele e fumaneha hohle, o tla tlameha ho ema metsotsoana e seng mekae.

    Nako le nako ha o sebelisa API ea asynchronous e nang le botsitso bo botsoa, ​​​​o tlameha ho leka kopo ea hau nako le nako ho fihlela ketso e phethela le ho hasana ka sistimi. Ka bomalimabe, AWS SDK ha e fane ka lisebelisoa leha e le life tse ntle bakeng sa sena, 'me morero oa Terraform o ne o atisa ho tšoaroa ke likokoana-hloko tse kang 6813 (https://github.com/hashicorp/terraform/issues/6813):

    $ terraform apply
    aws_subnet.private-persistence.2: InvalidSubnetID.NotFound:
    The subnet ID 'subnet-xxxxxxx' does not exist

    Ka mantsoe a mang, u theha sesebelisoa (joalo ka subnet) ebe u leka ho fumana lintlha tse ling ka eona (joalo ka ID ea subnet e sa tsoa etsoa), mme Terraform ha e e fumane. Bongata ba litšitšili tsena (ho kenyeletsoa 6813) li lokisitsoe, empa li ntse li mela nako le nako, haholo ha Terraform e eketsa tšehetso bakeng sa mofuta o mocha oa lisebelisoa. Sena sea khopisa, empa hangata ha se bake kotsi. Ha o sebelisa terraform hape, ntho e 'ngoe le e' ngoe e lokela ho sebetsa, kaha ka nako ena boitsebiso bo tla be bo se bo hasane ho pholletsa le tsamaiso.

    Setšoantšo sena se hlahisoa bukeng ea Evgeniy Brikman "Terraform: lisebelisoa tsa motheo boemong ba khoutu".

Source: www.habr.com

Eketsa ka tlhaloso