Nanangana mpamatsy Terraform ofisialy izahay hiara-miasa amin'i Selectel. Ity vokatra ity dia ahafahan'ny mpampiasa mampihatra tanteraka ny fitantanana ny loharanon-karena amin'ny alàlan'ny fomba fiasa Infrastructure-as-code.
Ny mpamatsy amin'izao fotoana izao dia manohana ny fitantanana ny loharanon'asa "Rahona tsy miankina virtoaly" (antsoina hoe VPC avy eo). Amin'ny ho avy, mikasa ny hanampy fitantanana loharanon-karena ho an'ny serivisy hafa omen'ny Selectel izahay.
Araka ny efa fantatrao, ny serivisy VPC dia naorina amin'ny OpenStack. Na izany aza, noho ny zava-misy fa ny OpenStack dia tsy manome fitaovana teratany amin'ny fanompoana ny rahona ho an'ny daholobe, dia nampiharina ny fampiasa tsy hita ao anatin'ny andiana API fanampiny izay manatsotra ny fitantanana ireo zavatra composite be pitsiny sy mahatonga ny asa ho mora kokoa. Ny sasany amin'ireo fiasa misy ao amin'ny OpenStack dia mihidy amin'ny fampiasana mivantana, fa azo alaina amin'ny alàlan'ny ny API.
Ny mpamatsy Selectel Terraform izao dia ahitana ny fahafahana mitantana ireto loharano VPC manaraka ireto:
tetikasa sy ny fetrany;
mpampiasa, ny anjara asany sy ny famantarana;
subnets ho an'ny daholobe, anisan'izany ny faritra midadasika sy VRRP;
lisansa rindrambaiko.
Mampiasa ny tranomboky Go ho an'ny daholobe ny mpamatsy mba hiasa miaraka amin'ny VPC API. Na ny trano famakiam-boky na ny mpamatsy dia loharano misokatra, ny fampivoarana azy ireo dia atao amin'ny Github:
Raha mitantana loharanon-drahona hafa, toy ny milina virtoaly, kapila, kluster Kubernetes, dia azonao ampiasaina ny mpamatsy OpenStack Terraform. Ny antontan-taratasy ofisialy ho an'ny mpamatsy roa dia azo alaina amin'ireto rohy manaraka ireto:
Ny fanehoana ny fiaraha-miasa amin'ny Selectel dia noforonina amin'ny fampiasana Terraform na amin'ny fampiasana andiana ohatra efa vita izay hita ao amin'ny tahiry Github: terraform-ohatra.
Ny tahiry misy ohatra dia mizara roa:
Modules, misy môdely kely azo ampiasaina indray izay maka mari-pamantarana maromaro ho fampidirana sy mitantana loharanon-karena kely;
Ao anaty rakitra vars.tf ny masontsivana rehetra izay ho ampiasaina amin'ny fiantsoana Modules dia voalaza. Ny sasany amin'izy ireo dia manana sanda default, ohatra, ny mpizara dia hoforonina ao amin'ny faritra ru-3a miaraka amin'ny configuration manaraka:
Raha ilaina dia azonao atao ny mamaritra fanalahidin'ny daholobe hafa. Ny fanalahidy dia tsy voatery ho voatondro ho lalan-drakitra; azonao atao koa ny manampy ny sanda ho tady.
Amin'ity rakitra ity dia atomboka ny modules project_with_user и server_local_root_disk, izay mitantana ireo loharano ilaina.
fandresen-dahatra ignore_changes mamela anao tsy hiraharaha ny fiovan'ny toetra id ho an'ny sary ampiasaina hamoronana ny milina virtoaly. Ao amin'ny serivisy VPC, ny ankamaroan'ny sary ho an'ny daholobe dia havaozina ho azy indray mandeha isan-kerinandro ary miaraka amin'izay koa ny azy id miova koa. Izany dia noho ny mampiavaka ny singa OpenStack - Glance, izay heverina ho singa tsy azo ovaina ny sary.
Raha mamorona na manova mpizara na kapila efa misy ianao izay manana tohan-kevitra image_id ampiasaina id sary ho an'ny daholobe, avy eo aorian'ny fanavaozana an'io sary io, ny fampandehanana indray ny Terraform manifest dia hamerina ny server na disk. Mampiasa hevitra ignore_changes mamela anao hisoroka toe-javatra toy izany.
Fanamarihana: argument ignore_changes niseho tao amin'ny Terraform efa hatry ny ela: misintona#2525.
fandresen-dahatra ignore_resize_confirmation ilaina mba hahombiazana hanova ny haben'ny kapila eo an-toerana, cores, na fahatsiarovana mpizara. Ny fanovana toy izany dia atao amin'ny alàlan'ny singa OpenStack Nova amin'ny fampiasana fangatahana hanova haben. Default Nova aorian'ny fangatahana hanova haben mametraka ny mpizara amin'ny sata verify_resize ary miandry fanamafisana fanampiny avy amin'ny mpampiasa. Na izany aza, azo ovaina io fihetsika io mba tsy hiandry hetsika fanampiny avy amin'ny mpampiasa i Nova.
Ny tohan-kevitra voafaritra dia mamela an'i Terraform tsy hiandry ny sata verify_resize ho an'ny mpizara ary miomàna ho amin'ny sata mavitrika ny mpizara rehefa avy nanova ny mari-pamantarana. Ny hevitra dia azo avy amin'ny version 1.10.0 an'ny OpenStack Terraform provider: misintona#422.
Mamorona loharanon-karena
Alohan'ny handefasana ny manifests, azafady mariho fa amin'ny ohatra asehontsika dia misy mpamatsy roa samy hafa natomboka, ary ny mpamatsy OpenStack dia miankina amin'ny loharanon'ny mpamatsy Selectel, satria raha tsy misy mpampiasa ao amin'ny tetikasa dia tsy azo atao ny mitantana ny zavatra misy azy. . Indrisy anefa fa noho io antony io ihany dia tsy afaka manatanteraka ny baiko fotsiny isika mihatra ny terraform ao anatintsika ohatra. Mila manao aloha isika mampihatra ho an'ny module project_with_user ary avy eo dia ho an'ny zavatra hafa rehetra.
Fanamarihana: Ity olana ity dia tsy mbola voavaha ao amin'ny Terraform, azonao atao ny manaraka ny fifanakalozan-kevitra ao amin'ny Github amin'ny laharana #2430 и laharana #4149.
Ny vokatra dia mampiseho fa ny Terraform dia misintona ny kinova farany an'ny mpamatsy ampiasainy ary manamarina ny maody rehetra voalaza ao amin'ny ohatra.
Andao aloha hampihatra ny module project_with_user. Izany dia mitaky sanda mandalo amin'ny tanana ho an'ny variables izay tsy napetraka:
Aorian'ny fampandehanana ny baiko dia asehon'i Terraform izay loharano tiany hamoronana ary hangataka fanamafisana:
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
Raha vao noforonina ny tetikasa, ny mpampiasa ary ny anjara asany dia afaka manomboka mamorona ireo loharano sisa ianao:
Azonao atao ny miara-miasa amin'ny milina virtoaly noforonina amin'ny SSH amin'ny alàlan'ny IP voatondro.
Fanovana loharanon-karena
Ho fanampin'ny famoronana loharano amin'ny alàlan'ny Terraform dia azo ovaina ihany koa izy ireo.
Ohatra, andao hampitombo ny isan'ny cores sy ny fitadidiana ho an'ny mpizara amin'ny alàlan'ny fanovana ny soatoavina ho an'ny paramètre. server_vcpus и server_ram_mb anaty rakitra examples/vpc/server_local_root_disk/main.tf:
Ao amintsika ohatra repository Azonao atao ihany koa ny mahita manifests amin'ny famoronana milina virtoaly miaraka amin'ny kapila tambajotra.
Ohatra amin'ny famoronana cluster Kubernetes
Alohan'ny hirosoana amin'ny ohatra manaraka dia hodiovintsika ireo loharano noforoninay teo aloha. Mba hanaovana izany ao amin'ny fototry ny tetikasa terraform-examples/examples/vpc/server_local_root_disk Andeha hojerentsika ny baiko hamafa ny zavatra OpenStack:
Amin'ireo tranga roa ireo dia mila manamarina ny famafana ny zavatra rehetra ianao:
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
Ity ohatra ity dia mamorona tetikasa, mpampiasa manana anjara amin'ny tetikasa, ary manangana cluster Kubernetes iray. Ao anaty rakitra vars.tf azonao jerena ny soatoavina mahazatra, toy ny isan'ny nodes, ny toetrany, ny dikan-teny Kubernetes, sns.
Mba hamoronana loharano mitovy amin'ny ohatra voalohany, voalohany indrindra dia hanomboka fanombohana modules isika ary hamorona loharano modules project_with_userary avy eo mamorona ny zavatra hafa rehetra:
Hamindra ny famoronana sy ny fitantanana ny kluster Kubernetes amin'ny alàlan'ny singa OpenStack Magnum izahay. Azonao atao ny mahita bebe kokoa momba ny fomba fiasa miaraka amin'ny cluster ao amin'ny iray aminay lahatsoratra teo alohaary koa amin'ny fototra fahalalana.
Rehefa manomana ny cluster, dia hatsangana ny kapila sy milina virtoaly ary hapetraka ny singa ilaina rehetra. Maharitra 4 minitra eo ho eo ny fanomanana, mandritra izany fotoana izany dia haneho hafatra toy ny:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
Rehefa vita ny fametrahana dia hanondro ny Terraform fa vonona ny cluster ary asehoy ny ID azy:
Hitantana ny kluster Kubernetes noforonina amin'ny alalan'ny fitaovana kubectl mila maka ny rakitra fidirana cluster ianao. Mba hanaovana izany, mandehana any amin'ny tetikasa noforonina tamin'ny alàlan'ny Terraform ao amin'ny lisitry ny tetikasa ao amin'ny kaontinao:
Manaraka, araho ny rohy toy ny xxxxxx.selvpc.ruizay miseho eo ambanin'ny anaran'ny tetikasa:
Raha mila fampahalalana momba ny fidirana, ampiasao ny solonanarana sy tenimiafina noforoninao tamin'ny alàlan'ny Terraform. Raha mbola tsy nisoloky ianao vars.tf na main.tf ohatra, ny mpampiasa dia hanana ny anarana tf_user. Tsy maintsy mampiasa ny sandan'ny fari-piainana ho tenimiafina ianao TF_VAR_user_password, izay nofaritana tamin'ny fanombohana mihatra ny terraform teo aloha.
Ao anatin'ilay tetikasa dia mila mandeha any amin'ny tabilao ianao Kubernetes:
Eto no misy ny cluster noforonina tamin'ny alàlan'ny Terraform. Misintona rakitra ho an'ny kubectl azonao atao ao amin'ny tabilao "Access":
Ny torolàlana fametrahana dia hita eo amin'ny tabilao mitovy. kubectl ary ny fampiasana ny alaina config.yaml.
Aorian'ny fandefasana kubectl ary mametraka ny fari-piainan'ny tontolo iainana KUBECONFIG azonao atao ny mampiasa Kubernetes:
Rehefa miova ny isan'ny nodes dia mbola ho hita ny cluster. Aorian'ny fampidirana node amin'ny alàlan'ny Terraform dia azonao ampiasaina tsy misy fanampim-panazavana fanampiny:
$ 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
famaranana
Ato amin'ity lahatsoratra ity isika dia nahafantatra ny tena fomba miasa miaraka "Rahona tsy miankina virtoaly" amin'ny alàlan'ny Terraform. Faly izahay raha mampiasa ny mpamatsy Selectel Terraform ofisialy ianao ary manome valiny.
Ny bibikely rehetra hita ao amin'ny mpamatsy Selectel Terraform dia azo taterina amin'ny alàlan'ny Olana Github.