Kua whakarewahia e matou he kaiwhakarato Terraform whaimana hei mahi tahi me Selectel. Ma tenei hua ka taea e nga kaiwhakamahi te whakatinana katoa i te whakahaere rauemi ma te tikanga Hangahanga-hei-waehere.
I tenei wa kei te tautoko te kaiwhakarato i te whakahaere rauemi ratonga "Kapua tūmataiti mariko" (i muri nei ka kiia ko VPC). Hei nga ra kei te heke mai, kei te whakamahere matou ki te taapiri i te whakahaere rauemi mo etahi atu ratonga e whakaratohia ana e Selectel.
Kei te mohio koe, kua hangaia te ratonga VPC ki OpenStack. Heoi, na te mea kaore a OpenStack e whakarato i nga taputapu taketake mo te mahi i te kapua a te iwi, i whakatinanahia e matou te mahi ngaro i roto i te huinga o etahi atu API e ngawari ana te whakahaere i nga taonga hiato matatini me te pai ake o te mahi. Ko etahi o nga mahi e waatea ana i OpenStack kua katia mai i te whakamahi tika, engari kei te waatea mai to tatou API.
Kei roto i te kaiwhakarato Selectel Terraform te kaha ki te whakahaere i nga rauemi VPC e whai ake nei:
kaupapa me o ratou motunga;
nga kaiwhakamahi, o ratou mahi me o ratou tohu;
kupenga-roto a-iwi, tae atu ki nga rohe whakawhiti me te VRRP;
raihana pūmanawa.
Ka whakamahi te kaiwhakarato i to maatau whare pukapuka Go public ki te mahi me te VPC API. Ko te whare pukapuka me te kaiwhakarato ano he puna tuwhera, ka mahia to raatau whanaketanga i runga i Github:
Hei whakahaere i etahi atu rauemi kapua, penei i nga miihini mariko, nga kopae, nga tautau Kubernetes, ka taea e koe te whakamahi i te kaiwhakarato OpenStack Terraform. E waatea ana nga tuhinga whaimana mo nga kaiwhakarato e rua i nga hononga e whai ake nei:
Hei timata, me whakauru koe i a Terraform (ka kitea nga tohutohu me nga hononga ki nga kete whakaurunga i paetukutuku mana).
Hei mahi, me tono e te kaiwhakarato he taviri API Selectel, ka hangaia ki roto paewhiri mana kaute.
Ko nga whakaaturanga mo te mahi tahi me Selectel ka hangaia ma te whakamahi i a Terraform, ma te whakamahi ranei i te huinga tauira kua rite e waatea ana i roto i ta maatau putunga Github: terraform-tauira.
Ko te putunga me nga tauira kua wehea kia rua nga raarangi:
kōwae, kei roto i nga waahanga iti ka taea te whakamahi ano ka tango i te huinga tawhā hei whakaurunga me te whakahaere i tetahi huinga rauemi iti;
tauira, kei roto nga tauira o te huinga katoa o nga waahanga honohono.
Whai muri i te whakaurunga o Terraform, te hanga i tetahi taviri API Selectel me te mohio ki nga tauira, me haere ki nga tauira whaihua.
He tauira mo te hanga i te tūmau me te kōpae paetata
I roto i te kōnae vars.tf Ko nga tawhā katoa ka whakamahia i te wa e karanga ana i nga waahanga kua whakaahuahia. Ko etahi o ratou he uara taunoa, hei tauira, ka hangaia te tūmau i roto i te rohe ru-3a me te whirihoranga e whai ake nei:
Mena e tika ana, ka taea e koe te tautuhi i tetahi atu taviri tūmatanui. Ko te kī e kore e tika kia tohua hei ara konae; ka taea hoki te taapiri i te uara hei aho.
I tua atu i tenei konae ka whakarewahia nga waahanga kaupapa_me_kaiwhakamahi и server_local_root_disk, e whakahaere ana i nga rauemi e tika ana.
Kia ata tirohia enei waahanga.
Te hanga kaupapa me tetahi kaiwhakamahi whai waahi
Ka taea e te kaiwhakamahi hanga te takiuru ki OpenStack me te whakahaere i ana rauemi. He ngawari te kōwae me te whakahaere i nga hinonga e toru anake:
tīpako_vpc_kaupapa_v2,
selectel_vpc_user_v2,
selectel_vpc_role_v2.
Te hanga i te tūmau mariko me te kōpae paetata
Ko te waahanga tuarua e pa ana ki te whakahaere i nga taonga OpenStack, e tika ana hei hanga i tetahi tūmau me te kōpae rohe.
Me aro koe ki etahi o nga tohenga kua tohua i roto i tenei waahanga mo te rauemi openstack_compute_instance_v2:
tautohe wareware_whakarereke ka taea e koe te wareware i nga huringa huanga id mo te ahua i whakamahia hei hanga i te miihini mariko. I roto i te ratonga VPC, ko te nuinga o nga whakaahua a te iwi ka whakahoutia aunoa kotahi i te wiki me te wa ano id ka huri ano. Ko tenei na nga ahuatanga o te waahanga OpenStack - Glance, e kiia ana ko nga whakaahua he hinonga korekore.
Mēnā kei te waihanga, kei te whakakē rānei koe i tētahi tūmau o nāianei, kōpae rānei he tohenga image_id whakamahia id whakaahua tūmatanui, katahi ka whakahouhia taua ahua, ka whakahaere ano i te whakaaturanga Terraform ka hanga ano te tūmau, te kōpae ranei. Te whakamahi tautohe wareware_whakarereke ka taea e koe te karo i taua ahuatanga.
Tuhipoka: tautohe wareware_whakarereke I puta mai i roto i te Terraform i mua noa atu: toia#2525.
tautohe wareware_whakanui_whakau e hiahiatia ana kia pai te whakarereke i te rahi o te kōpae paetata, nga matua, te mahara tūmau ranei. Ko enei huringa ka mahia ma te waahanga OpenStack Nova ma te tono tono whakahou. Taunoa Nova i muri i te tono whakahou ka tuu te tūmau ki te tūnga manatoko_te rahi ka tatari mo etahi atu whakapumautanga mai i te kaiwhakamahi. Heoi, ka taea te whakarereke i tenei whanonga kia kore ai a Nova e tatari mo etahi atu mahi mai i te kaiwhakamahi.
Ko te tohenga kua tohua ka taea e Terraform te kore e tatari mo te mana manatoko_te rahi mo te tūmau me te whakarite kia noho kaha te tūmau i muri i te huri i ona tawhā. Kei te waatea te tautohetohe mai i te putanga 1.10.0 o te kaiwhakarato OpenStack Terraform: toia#422.
Te Waihanga Rauemi
I mua i te whakahaere i nga whakaaturanga, kia mahara kei roto i ta maatau tauira, e rua nga kaiwhakarato rereke kua whakarewahia, a ko te kaiwhakarato OpenStack e whakawhirinaki ana ki nga rauemi a te Kaiwhakarato Selectel, na te mea kaore i te hanga i tetahi kaiwhakamahi i roto i te kaupapa, kaore e taea te whakahaere i nga taonga kei a ia. . Kia aroha mai, mo te take ano e kore e taea te whakahaere noa i te whakahau terraform tono i roto i to tatou tauira. Me mahi tatou i te tuatahi tono mo te kōwae kaupapa_me_kaiwhakamahi a muri iho mo era atu mea katoa.
Tuhipoka: Kaore ano kia whakatauhia tenei take i Terraform, ka taea e koe te whai i nga korero mo Github i take #2430 и take #4149.
Ka arawhiti tatou i nga waahanga ma te whakamahi i te whakahau:
$ terraform init
Ko te putanga e whakaatu ana ka tango a Terraform i nga putanga hou o nga kaiwhakarato e whakamahia ana e ia me te tirotiro i nga waahanga katoa e whakaahuatia ana i te tauira.
Tuatahi ka whakamahi tatou i te kōwae kaupapa_me_kaiwhakamahi. Me tuku uara a-ringa mo nga taurangi kaore ano kia tautuhia:
pūkete_sel me to nama kaute Selectel;
sel_token me to matua mo Selectel API;
kaiwhakamahi_kupuhipa me te kupuhipa mo te kaiwhakamahi OpenStack.
Ko nga uara mo nga taurangi tuatahi e rua me tango mai paewhiri mana.
Mo te taurangi whakamutunga, ka taea e koe te whakaputa i tetahi kupuhipa.
Hei whakamahi i te kōwae me whakakapi e koe nga uara SEL_ACCOUNT, SEL_TOKEN и USER_PASSWORD whakahaere i te whakahau:
Whai muri i te whakahaere i te whakahau, ka whakaatu a Terraform he aha nga rauemi e hiahia ana ia ki te hanga me te tono mo te whakau:
Plan: 3 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
Ina oti te kaupapa, te kaiwhakamahi me te mahi, ka taea e koe te timata ki te hanga i nga toenga rauemi:
Ka taea e koe te mahi me te miihini mariko i hangaia ma te SSH ma te whakamahi i te IP kua tohua.
Rauemi Whakatikatika
I tua atu i te hanga rauemi ma te Terraform, ka taea hoki te whakarereke.
Hei tauira, me whakanui ake te maha o nga matua me te mahara mo to taatau tūmau ma te huri i nga uara mo nga tawhā. server_vcpus и server_ram_mb i roto i te kōnae tauira/vpc/server_local_root_disk/main.tf:
Ki ta maatau tauira putunga Ka taea hoki e koe te kite i nga whakaaturanga mo te hanga miihini mariko me nga puku whatunga.
He tauira mo te hanga i te roopu Kubernetes
I mua i te haere ki te tauira e whai ake nei, ka whakapaia e matou nga rauemi i hangaia i mua. Ki te mahi i tenei i te putake o te kaupapa terraform-examples/examples/vpc/server_local_root_disk Me whakahaere te whakahau ki te muku i nga taonga OpenStack:
I nga take e rua, me whakau koe i te mukunga o nga mea katoa:
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
Ka hangaia e tenei tauira he kaupapa, he kaiwhakamahi whai waahi ki roto i te kaupapa, ka whakaara ake i tetahi roopu Kubernetes. I roto i te kōnae vars.tf ka kite koe i nga uara taunoa, penei i te maha o nga pona, o raatau ahuatanga, putanga Kubernetes, aha atu.
Hei hanga rauemi kia rite ki te tauira tuatahi, tuatahi ka timata taatau ki te arawhiti i nga waahanga me te hanga rauemi waahanga kaupapa_me_kaiwhakamahikatahi ka hanga i nga mea katoa:
Ka whakawhitihia e matou te hanga me te whakahaere o nga tautau Kubernetes ma te waahanga OpenStack Magnum. Ka kitea e koe etahi atu korero mo te mahi me te roopu i tetahi o a maatau Tuhinga o muarite te turanga matauranga.
I te wa e whakareri ana i te kohinga, ka hangaia nga kopae me nga miihini mariko ka whakauruhia nga waahanga katoa e tika ana. E 4 meneti pea te whakaritenga, ka whakaatu a Terraform i nga karere penei:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
Kia oti te whakaurunga, ka tohu a Terraform kua rite te tautau ka whakaatu i tana ID:
Hei whakahaere i te roopu Kubernetes i hangaia ma te whaipainga kubectl me whiwhi koe i te konae uru uru. Ki te mahi i tenei, haere ki te kaupapa i hangaia ma Terraform i te rarangi o nga kaupapa kei roto i to putea:
Muri iho, whai i te hononga penei xxxxxx.selvpc.ruka puta i raro i te ingoa kaupapa:
Mo nga korero takiuru, whakamahia te ingoa kaiwhakamahi me te kupuhipa i hanga e koe ma te Terraform. Mena kaore koe i tinihanga vars.tf ranei matua.tf hei tauira, ka whai ingoa te kaiwhakamahi tf_kaiwhakamahi. Me whakamahi e koe te uara o te taurangi hei kupuhipa TF_VAR_kaiwhakamahi_kupuhipa, i tohua i te tiimatanga terraform tono i mua
I roto i te kaupapa me haere koe ki te ripa Kubernetes:
Koinei te waahi kei reira te tautau i hangaia ma Terraform. Tikiake kōnae mo kubectl ka taea e koe i runga i te ripa "Access":
Ko nga tohutohu whakauru kei runga i te ripa kotahi. kubectl me te whakamahi i nga mea kua tikiakehia config.yaml.
Whai muri i te whakarewatanga kubectl me te whakatakoto i te taurangi taiao KUBECONFIG Ka taea e koe te whakamahi Kubernetes:
Ina huri te maha o nga pona, ka noho tonu te tautau. Whai muri i te taapiri i tetahi node ma te Terraform, ka taea e koe te whakamahi me te kore whirihoranga taapiri:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
tf-cluster-rz6nggvs4va7-master-0 Ready,SchedulingDisabled master 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-0 Ready <none> 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-1 Ready <none> 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-2 Ready <none> 3m v1.12.4
mutunga
I roto i tenei tuhinga i mohio matou ki nga huarahi matua ki te mahi "Kapua tūmataiti mariko" mā Terraform. Ka koa matou ki te whakamahi koe i te kaiwhakarato Selectel Terraform whaimana me te tuku urupare.
Ko nga pepeha ka kitea i roto i te kaiwhakarato Selectel Terraform ka taea te ripoata ma te Nga Take Github.