Terraformer - Hanganga Ki te Waehere

Terraformer - Hanganga Ki te Waehere
E hiahia ana ahau ki te korero ki a koe mo te taputapu CLI hou i tuhia e au hei whakaoti i tetahi raruraru tawhito.

raruraru

Kua roa a Terraform hei paerewa i roto i te hapori Devops/Cloud/IT. Ko te mea he tino watea me te whai hua mo te whakahaere i nga hanganga hei waehere. He maha nga ahuareka o Terraform me te maha o nga marau, nga maripi koi me nga rake.
Ma te Terraform he tino watea ki te hanga mea hou katahi ka whakahaere, huri, whakakore ranei. Me aha te hunga he hanganga nui kei roto i te kapua kaore i hangaia ma Terraform? Ko te tuhi me te hanga ano i te kapua katoa he utu nui, he kore haumaru.
I tutaki ahau ki tenei raruraru i nga mahi 2, ko te tauira tino ngawari ko te wa e hiahia ana koe ki nga mea katoa kei roto i te Git i te ahua o nga konae terraform, engari kei a koe te 250+ peere me te mea nui ki te tuhi i roto i te terraform ma te ringaringa.
He take mai i te tau 2014 ki te whenua i katia i te tau 2016 me te tumanako ka tae mai te kawemai.

I te nuinga o te waa, he rite nga mea katoa ki te pikitia mai i te matau ki te maui

Whakatupato: Kaore te kaituhi e noho ana i Russia mo te haurua o tona oranga me te tuhi iti i te reo Rusia. Kia tupato ki nga hapa takikupu.

Nga raruraru

1. He otinga kua rite me te tawhito mo AWS hanga whenua. I taku ngana ki te whakauru i aku peere 250+, ka mohio ahau he kino nga mea katoa i reira. Kua roa a AWS e whakaatu ana i nga whiringa hou, engari kaore e mohio ana te terraforming ki a raatau me te nuinga he rupi. he iti te ahua o te tauira. I muri i te 2 i te ahiahi ka tukuna e ahau Toia tono ki te taapiri i etahi atu ahuatanga ki reira me te mohio kaore e pai te otinga penei.
Me pehea te mahi terraforming: ka tango raraunga mai i te AWS SDK ka whakaputa tf me tfstate ma te tauira.
E toru nga raruraru i konei:
1. Ka roa tonu nga whakahoutanga
2. i etahi wa ka puta pakaru nga konae
3. Ka kohia motuhake te tfstate mai i te tf, a, karekau e hono tonu
I te nuinga o te waa, he uaua ki te whiwhi hua e kii ana te `mahere whenua' karekau he huringa

2. Ko te 'whakauru whenua' he tono hanga-i roto i te whenua. Me pehea te mahi?
Ka tuhi koe i tetahi konae TF putua me te ingoa me te momo rauemi, ka whakahaere i te `terraform import` ka tukuna te ID rauemi. Ka whakapā atu a terraform ki te kaiwhakarato, ka whiwhi raraunga ka hanga he konae tfstate.
E toru nga raruraru i konei:
1. Ka whiwhi noa matou i te konae tfstate, a kei te noho kau te tf, me tuhi a ringa, ka huri ranei mai i tfstate
2. Ka taea anake te mahi me te rauemi kotahi i te wa, kaore e tautoko i nga rauemi katoa. Me aha ano ahau ki te 250+ peere?
3. Me mohio koe ki te ID o nga rauemi - ara, me takai koe ki te waehere ka whiwhi te rarangi rauemi
I te nuinga o te waa, he waahanga te hua, kaore i te pai te awhata

Taku whakatau

Whakaritenga:
1. Te kaha ki te hanga i nga konae tf me te tfstate mo nga rauemi. Hei tauira, tango i nga peere katoa/roopu haumaru/whakarite kawenga ka hoki mai te `mahere whenua` kaore he huringa
2. Me 2 GCP + AWS kapua
3. Te otinga o te ao he ngawari ki te whakahou i nga wa katoa, kaore e pau te wa mo ia rauemi mo nga ra e 3 o te mahi
4. Whakatuwheratia - he rite tonu te raruraru o te katoa

Ko te reo Haere te take i pai ai ahau, a he whare pukapuka tana mo te hanga i nga konae HCL e whakamahia ana i roto i te terraform + he maha nga waehere i roto i te terraform ka whai hua.

ara

Ko te whakataetae tuatahi
I timata ahau me te putanga ngawari. Te whakapā atu ki te kapua mā te SDK mo te rauemi e hiahiatia ana me te huri hei mara mo te whenua. I mate tonu te ngana ki te roopu haumaru na te mea kaore au i pai ki nga ra 1.5 ki te huri noa i te roopu haumaru (a he maha nga rauemi). Ka roa te waa katahi ka taea te whakarereke/tapirihia nga mara

Ngana tuarua
I runga i te whakaaro i whakaahuatia konei. Me tango noa ka huri i te tfstate ki te tf. Kei reira nga raraunga katoa, he rite ano nga mara. Me pehea te whiwhi tfstate ki tonu mo nga rauemi maha?? I konei te whakahau `terraform refresh` ki te whakaora. Ka tangohia e te terraform nga rauemi katoa i roto i te tfstate, a, na te ID, ka toia nga raraunga ki runga i a raatau ka tuhia nga mea katoa ki te tfstate. Arā, hangaia he tfstate putua me nga ingoa me nga ID anake, whakahaere `terraform refresh` katahi ka whiwhi i nga tfstates katoa. Hore!
Inaianei ka mahia e tatou te karekau recursive o te tuhi i te kaitahuri mo te tfstate ki te tf. Mo te hunga kaore ano kia panui i te tfstate, he JSON, engari he mea motuhake.
Anei ona huanga waahanga nui

 "attributes": {
                            "id": "default/backend-logging-load-deployment",
                            "metadata.#": "1",
                            "metadata.0.annotations.%": "0",
                            "metadata.0.generate_name": "",
                            "metadata.0.generation": "24",
                            "metadata.0.labels.%": "1",
                            "metadata.0.labels.app": "backend-logging",
                            "metadata.0.name": "backend-logging-load-deployment",
                            "metadata.0.namespace": "default",
                            "metadata.0.resource_version": "109317427",
                            "metadata.0.self_link": "/apis/apps/v1/namespaces/default/deployments/backend-logging-load-deployment",
                            "metadata.0.uid": "300ecda1-4138-11e9-9d5d-42010a8400b5",
                            "spec.#": "1",
                            "spec.0.min_ready_seconds": "0",
                            "spec.0.paused": "false",
                            "spec.0.progress_deadline_seconds": "600",
                            "spec.0.replicas": "1",
                            "spec.0.revision_history_limit": "10",
                            "spec.0.selector.#": "1",

He:
1. id - aho
2. metadata - he huinga o te rahi 1 me tetahi ahanoa me nga mara e whakaahuatia ana i raro nei
3. spec - hash of size 1 and key, value in it
I roto i te poto, he hōputu ngahau, ka taea e nga mea katoa kia maha nga taumata hohonu

                   "spec.#": "1",
                            "spec.0.min_ready_seconds": "0",
                            "spec.0.paused": "false",
                            "spec.0.progress_deadline_seconds": "600",
                            "spec.0.replicas": "1",
                            "spec.0.revision_history_limit": "10",
                            "spec.0.selector.#": "1",
                            "spec.0.selector.0.match_expressions.#": "0",
                            "spec.0.selector.0.match_labels.%": "1",
                            "spec.0.selector.0.match_labels.app": "backend-logging-load",
                            "spec.0.strategy.#": "0",
                            "spec.0.template.#": "1",
                            "spec.0.template.0.metadata.#": "1",
                            "spec.0.template.0.metadata.0.annotations.%": "0",
                            "spec.0.template.0.metadata.0.generate_name": "",
                            "spec.0.template.0.metadata.0.generation": "0",
                            "spec.0.template.0.metadata.0.labels.%": "1",
                            "spec.0.template.0.metadata.0.labels.app": "backend-logging-load",
                            "spec.0.template.0.metadata.0.name": "",
                            "spec.0.template.0.metadata.0.namespace": "",
                            "spec.0.template.0.metadata.0.resource_version": "",
                            "spec.0.template.0.metadata.0.self_link": "",
                            "spec.0.template.0.metadata.0.uid": "",
                            "spec.0.template.0.spec.#": "1",
                            "spec.0.template.0.spec.0.active_deadline_seconds": "0",
                            "spec.0.template.0.spec.0.container.#": "1",
                            "spec.0.template.0.spec.0.container.0.args.#": "3",

I te nuinga o te waa, mena ka pirangi tetahi ki tetahi raruraru hotaka mo te uiui, tono noa kia tuhia he parser mo tenei mahi :)
I muri i te maha o nga ngana ki te tuhi i tetahi parser kaore he putea, i kitea e ahau tetahi waahanga i roto i te waehere terraform, me te waahanga tino nui. A he pai te ahua o nga mea katoa

Ngana kia toru
Ko nga kaiwhakarato terraform he takirua kei roto he waehere me nga rauemi katoa me te arorau mo te mahi me te API kapua. Kei ia kapua tana ake kaiwhakarato me te terraform ka karanga noa ma tana kawa RPC i waenga i nga mahi e rua.
Inaianei kua whakatau ahau ki te whakapā atu ki nga kaiwhakarato whenua ma nga waea RPC. I puta ataahua, i taea ai te whakarereke i nga kaiwhakarato terraform ki nga mea hou me te tiki i nga ahuatanga hou me te kore e whakarereke i te waehere. Ka puta ano hoki kaore nga mara katoa i tfstate me uru ki tf, engari me pehea e mohio ai koe? Patai noa ki to kaiwhakarato mo tenei. Na ka timata ano tetahi atu whakaahua karekau o te whakahiato i nga korero, te rapu i nga mara o roto o tfstate i nga taumata katoa.

I te mutunga, ka whiwhi matou i tetahi taputapu CLI whaihua he hanganga noa mo nga kaiwhakarato whenua katoa a ka taea e koe te taapiri i tetahi mea hou. Ano, ko te taapiri rauemi he iti noa te waehere. Me nga momo pai katoa penei i nga hononga i waenga i nga rauemi. Ko te tikanga, he maha nga raruraru rereke kaore e taea te korero katoa.
I tapaina e ahau te kararehe ko Terrafomer.

Tuhinga whakamutunga

Ma te whakamahi i te Terrafomer, i hangaia e matou te 500-700 mano rarangi o te waehere tf + tfstate mai i nga kapua e rua. I taea e matou te tango i nga mea tuku iho me te tiimata ki te pa ki a raatau ma te whenua anake, penei i nga hanganga pai rawa atu hei whakaaro waehere. He mea makutu noa ka mau koe i te kapua nui ka whakawhiwhia mai ma te roopu i te ahua o nga konae kaimahi terraform. Na ka grep / whakakapi / git me etahi atu.

Naku i heru, ka whakatika, ka whakaaetia. I tukuna i runga GitHub mo te katoa i te Rapare (02.05.19/XNUMX/XNUMX). github.com/GoogleCloudPlatform/terraformer
Kua whiwhi 600 whetu, 2 tono toia mo te taapiri tautoko mo te openstack me nga kubernetes. He urupare pai. I te nuinga o te waa, he pai te kaupapa mo te tangata
Ka tohutohu ahau ki nga tangata katoa e hiahia ana ki te timata ki te mahi me te Terraform me te kore e tuhi ano i nga mea katoa mo tenei.
Ka koa ahau ki te toia nga tono, take, whetu.

Tauwehe
Terraformer - Hanganga Ki te Waehere

Source: will.com

Tāpiri i te kōrero