Re tsebisitse mofani oa semmuso oa Terraform ho sebetsa le Selectel. Sehlahisoa sena se lumella basebelisi ho kenya tšebetsong taolo ea lisebelisoa ka botlalo ka mokhoa oa Infrastructure-as-code.
Hajoale mofani o tšehetsa taolo ea lisebelisoa tsa litšebeletso "Virtual private cloud" (eo hamorao e tla bitsoa VPC). Nakong e tlang, re rera ho eketsa taolo ea lisebelisoa bakeng sa lits'ebeletso tse ling tse fanoang ke Selectel.
Joalokaha u se u ntse u tseba, tšebeletso ea VPC e hahiloe ho OpenStack. Leha ho le joalo, ka lebaka la hore OpenStack ha e fane ka lisebelisoa tsa tlhaho bakeng sa ho sebeletsa leru la sechaba, re sebelisitse ts'ebetso e sieo ka har'a sehlopha sa li-API tse eketsehileng tse nolofatsang tsamaiso ea lintho tse rarahaneng tse nang le likarolo tse ngata le ho etsa hore mosebetsi o be bonolo haholoanyane. Tse ling tsa ts'ebetso e fumanehang ho OpenStack e koetsoe ho sebelisoa ka kotloloho, empa e fumaneha ka API ea rona.
Mofani oa Selectel Terraform joale o kenyelletsa bokhoni ba ho laola lisebelisoa tse latelang tsa VPC:
merero le likhau tsa bona;
basebelisi, mesebetsi ea bona le matšoao;
li-subnets tsa sechaba, tse kenyeletsang libaka le VRRP;
laesense ea software.
Mofani o sebelisa laeborari ea rona ea Go ea sechaba ho sebetsa le VPC API. Ka bobeli laeborari le mofani oa eona ka boeona ke mohloli o bulehileng, nts'etsopele ea bona e etsoa ho Github:
Ho laola lisebelisoa tse ling tsa maru, tse kang mechine ea sebele, li-disks, lihlopha tsa Kubernetes, u ka sebelisa mofani oa OpenStack Terraform. Litokomane tsa molao bakeng sa bafani ka bobeli li fumaneha lihokelong tse latelang:
Lipontšo tsa ho sebetsa le Selectel li entsoe ho sebelisoa Terraform kapa ho sebelisa mehlala e seng e entsoe e fumanehang sebakeng sa rona sa polokelo ea Github: terraform-mehlala.
Sebaka sa polokelo se nang le mehlala se arotsoe ka lihlopha tse peli:
dimmojule, e nang le li-modules tse nyenyane tse ka sebelisoang hape tse nkang sete ea litekanyetso e le ho kenya letsoho le ho laola lisebelisoa tse nyenyane;
mehlala, e nang le mehlala ea sete e feletseng ea li-module tse hokahaneng.
Kamora ho kenya Terraform, ho theha senotlolo sa Selectel API le ho tloaelana le mehlala, a re feteleng pele ho mehlala e sebetsang.
Ka faele vars.tf lintlha tsohle tse tla sebelisoa ha ho letsetsa li-module li hlalositsoe. Tse ling tsa tsona li na le litekanyetso tsa kamehla, mohlala, seva se tla etsoa sebakeng seo ru-3a ka tlhophiso e latelang:
Haeba ho hlokahala, o ka hlakisa senotlolo se fapaneng sa sechaba. Senotlolo ha sea tlameha ho hlalosoa e le tsela ea faele; o ka eketsa boleng joalo ka khoele.
Ho feta moo faeleng ena, li-module li hlahisoa morero_le_mosebedisi и server_local_root_disk, tse laolang lisebelisoa tse hlokahalang.
khang hlokomoloha_phetoho e o lumella ho iphapanyetsa liphetoho tsa sebopeho id bakeng sa setšoantšo se sebelisitsoeng ho bopa mochine oa sebele. Tšebeletsong ea VPC, litšoantšo tse ngata tsa sechaba li nchafatsoa hang ka beke 'me ka nako e ts'oanang tsa bona id le tsona lia fetoha. Sena se bakoa ke likarolo tse ikhethang tsa karolo ea OpenStack - Glance, eo ho eona litšoantšo li nkoang e le mekhatlo e sa fetoheng.
Haeba u theha kapa u fetola seva kapa disk e teng e nang le khang setšoantšo_id e sebelisoa id setšoantšo sa sechaba, ka mor'a hore setšoantšo seo se ntlafatsoe, ho sebelisa Terraform manifest hape ho tla tsosolosa seva kapa disk. Ho sebelisa khang hlokomoloha_phetoho e u lumella ho qoba boemo bo joalo.
Tlhokomeliso: khang hlokomoloha_phetoho e hlahile Terraform khale haholo: hula#2525.
khang hlokomoloha_resize_confirmation e hlokahalang ho fetola boholo ba disk ea lehae ka katleho, li-cores, kapa memori ea seva. Liphetoho tse joalo li etsoa ka karolo ea OpenStack Nova ho sebelisoa kopo fetola. Nova ea kamehla ka mor'a kopo fetola e beha seva maemong netefatsa_resize mme e emetse netefatso e eketsehileng ho tsoa ho mosebelisi. Leha ho le joalo, boitšoaro bona bo ka fetoloa e le hore Nova e se ke ea emela liketso tse eketsehileng ho tsoa ho mosebedisi.
Khang e boletsoeng e lumella Terraform hore e se ke ea emela boemo netefatsa_resize bakeng sa seva 'me u itokisetse hore seva se be boemong bo sebetsang ka mor'a ho fetola liparamente tsa eona. Khang e fumaneha ho tsoa ho mofuta oa 1.10.0 oa mofani oa OpenStack Terraform: hula#422.
Ho theha Lisebelisoa
Pele o tsamaisa lipontšo, ka kopo hlokomela hore mohlaleng oa rona, ho qalisoa bafani ba babeli ba fapaneng, 'me mofani oa OpenStack o itšetlehile ka lisebelisoa tsa mofani oa Selectel, kaha ntle le ho theha mosebedisi morerong, ho ke ke ha khoneha ho laola lintho tsa eona. . Ka bomalimabe, ka lebaka le tšoanang re ke ke ra tsamaisa taelo feela terraform e sebetsa ka hare ho mohlala oa rona. Re lokela ho etsa pele sebetsa bakeng sa mojule morero_le_mosebedisi mme kamora moo bakeng sa tse ding tsohle.
Sephetho se bonts'a hore Terraform e khoasolla mefuta ea morao-rao ea bafani bao e e sebelisang mme e lekola li-module tsohle tse hlalositsoeng mohlaleng.
Pele, a re sebeliseng mojule morero_le_mosebedisi. Sena se hloka litekanyetso tse fetang ka letsoho bakeng sa mefuta e sa kang ea beoa:
sel_account ka nomoro ea hau ea ak'haonte ea Selectel;
sel_token ka senotlolo sa hau sa Selectel API;
user_password ka password bakeng sa mosebelisi oa OpenStack.
Litekanyetso tsa mefuta e 'meli ea pele li tlameha ho nkuoa ho tsona diphanele taolo.
Bakeng sa phetoho ea ho qetela, o ka tla le password efe kapa efe.
Ho sebelisa mojule o hloka ho khutlisa boleng SEL_ACCOUNT, SEL_TOKEN и USER_PASSWORD ho tsamaisa taelo:
Kamora ho tsamaisa taelo, Terraform e tla bonts'a lisebelisoa tseo e batlang ho li theha le ho kopa netefatso:
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
Hang ha morero, mosebelisi le karolo li se li entsoe, u ka qala ho theha lisebelisoa tse setseng:
O ka sebetsa ka mochini o hlophisitsoeng o entsoeng ka SSH o sebelisa IP e boletsoeng.
Lisebelisoa tsa ho hlophisa
Ntle le ho theha lisebelisoa ka Terraform, li ka boela tsa fetoloa.
Mohlala, ha re eketse palo ea li-cores le memori bakeng sa seva sa rona ka ho fetola boleng ba li-parameter. seva_vcpus и seva_ram_mb ka faele mehlala/vpc/server_local_root_disk/main.tf:
Ho rona mohlala oa polokelo U ka boela ua bona lipontšo tsa ho theha mechini ea sebele e nang le li-drive tsa marang-rang.
Mohlala oa ho theha sehlopha sa Kubernetes
Pele re fetela mohlaleng o latelang, re tla hloekisa lisebelisoa tseo re li entseng pejana. Ho etsa sena motso oa morero terraform-mehlala/mehlala/vpc/server_local_root_disk Ha re tsamaise taelo ea ho hlakola lintho tsa OpenStack:
Maemong ana ka bobeli, o tla hloka ho netefatsa ho hlakoloa ha lintho tsohle:
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
Mohlala ona o theha morero, mosebelisi ea nang le karolo morerong ona, mme o phahamisa sehlopha se le seng sa Kubernetes. Ka faele vars.tf o ka bona boleng ba kamehla, joalo ka palo ea li-node, litšobotsi tsa bona, mofuta oa Kubernetes, jj.
Ho theha lisebelisoa tse ts'oanang le mohlala oa pele, pele ho tsohle re tla qala ho qala li-module le ho theha lisebelisoa tsa module morero_le_mosebedisiebe o etsa tse ling kaofela:
Re tla fetisetsa pōpo le tsamaiso ea lihlopha tsa Kubernetes ka karolo ea OpenStack Magnum. U ka tseba haholoanyane ka mokhoa oa ho sebetsa le sehlopha ho e 'ngoe ea rona lihlooho tse fetilenghammoho motheo oa tsebo.
Ha ho lokisoa sehlopha, li-disk le mechini ea sebele li tla etsoa 'me likarolo tsohle tse hlokahalang li tla kenngoa. Boitokisetso bo nka metsotso e ka bang 4, nakong eo Terraform e tla hlahisa melaetsa e kang:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
Hang ha ts'ebetso e felile, Terraform e tla bontša hore sehlopha se se se lokile 'me se bonts'a ID ea sona:
Ho laola sehlopha sa Kubernetes se entsoeng ka ts'ebeliso kubctl o hloka ho fumana faele ea phihlello ea cluster. Ho etsa sena, ea ho projeke e entsoeng ka Terraform lethathamong la merero e akhaonteng ea hau:
E latelang, latela sehokelo joalo ka xxxxx.selvpc.rue hlahang ka tlase ho lebitso la projeke:
Bakeng sa tlhaiso-leseling ea ho kena, sebelisa lebitso la mosebelisi le phasewete tseo u li entseng ka Terraform. Haeba ha o so qhekelle vars.tf kapa ka sehloohong.tf mohlala oa rona, mosebelisi o tla ba le lebitso tf_user. U tlameha ho sebelisa boleng ba ho feto-fetoha joalo ka senotlolo TF_VAR_user_password, e boletsoeng qalong terraform e sebetsa pejana.
Ka hare ho morero o hloka ho ea tab Kubernetes:
Mona ke moo sehlopha se entsoeng ka Terraform se leng teng. Khoasolla faele bakeng sa kubctl u ka khona ho "Access" tab ya:
Litaelo tsa ho kenya li fumaneha tabeng e tšoanang. kubctl le tšebeliso ea tse jarollotsoeng config.yaml.
Kamora ho qala kubctl le ho beha phetoho ya tikoloho KUBECONFIG U ka sebelisa Kubernetes:
Ha palo ea li-node e fetoha, sehlopha se tla lula se le teng. Kamora ho eketsa node ka Terraform, o ka e sebelisa ntle le tlhophiso e eketsehileng:
$ 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
fihlela qeto e
Sehloohong sena re ile ra tloaelana le litsela tse ka sehloohong tsa ho sebetsa le tsona "Virtual private cloud" ka Terraform. Re tla thaba ha o sebelisa mofani oa semmuso oa Selectel Terraform mme o fana ka maikutlo.
Litšitšili leha e le life tse fumanoang ho mofani oa Selectel Terraform li ka tlalehoa ka Mathata a Github.