Ua matou fa'alauiloa se kamupani fa'apitoa Terraform e galulue ma Selectel. O lenei oloa e mafai ai e tagata fa'aoga ona fa'atino atoatoa le puleaina o puna'oa e ala i le Infrastructure-as-code methodology.
O lo'o lagolagoina e le 'au'aunaga i le taimi nei le pulega o puna'oa "Virtual private cloud" (e ta'ua mulimuli ane o le VPC). I le lumanaʻi, matou te fuafua e faʻaopoopo le pulega o punaoa mo isi auaunaga na saunia e Selectel.
E pei ona e iloa, o le VPC auaunaga o loʻo fausia ile OpenStack. Ae ui i lea, ona o le mea moni e le tuʻuina atu e OpenStack meafaigaluega faʻapitoa mo le tautuaina o le ao lautele, matou te faʻatinoina galuega o loʻo misi i se seti o API faʻaopoopo e faʻafaigofie ai le puleaina o mea faʻapipiʻi lavelave ma faʻafaigofie le galuega. O nisi o galuega o loʻo maua i OpenStack ua tapunia mai le faʻaoga tuusaʻo, ae o loʻo avanoa e ala i matou API.
O le kamupani Selectel Terraform ua aofia nei le tomai e pulea ai punaoa VPC nei:
galuega faatino ma a latou tau;
tagata fa'aoga, o latou matafaioi ma fa'ailoga;
subnets lautele, e aofia ai fa'aitulagi fa'aitumalo ma VRRP;
laisene polokalame.
E fa'aaoga e le kamupani le matou faletusi a le Go lautele e galulue ai ma le VPC API. O le faletusi ma le kamupani lava ia e tatala-punaoa, o latou atinaʻe o loʻo faia i luga o Github:
Ina ia pulea isi punaoa ao, e pei o masini komepiuta, tisiki, fuifui Kubernetes, e mafai ona e faʻaogaina le OpenStack Terraform provider. O fa'amaumauga aloa'ia mo 'au'aunaga uma e lua o lo'o avanoa i so'oga nei:
Ina ia amata, e tatau ona e faʻapipiʻi Terraform (faʻatonuga ma fesoʻotaʻiga i faʻapipiʻi afifi e mafai ona maua ile faʻapitonuʻu aloaia).
Ina ia faʻagaioia, e manaʻomia e le kamupani se ki API Selectel, lea e fatuina i totonu laulau e pulea ai teugatupe.
Faʻaaliga mo le galulue faʻatasi ma Selectel e faia e faʻaaoga ai Terraform poʻo le faʻaaogaina o se seti o faʻataʻitaʻiga ua saunia o loʻo avanoa i totonu o le matou Github repository: fa'ata'ita'iga-tereraform.
O le fale teu oloa ma faʻataʻitaʻiga ua vaevaeina i ni lisi se lua:
modules, o loʻo i ai ni faʻaoga laiti e mafai ona faʻaaogaina e ave ai se seti o taʻiala e fai ma faʻaoga ma pulea se seti o punaoa;
faataitaiga, o loʻo i ai faʻataʻitaʻiga o se seti atoatoa o modules fesoʻotaʻi.
A maeʻa ona faʻapipiʻi Terraform, fatuina se Selectel API key ma faʻamasani oe i faʻataʻitaʻiga, seʻi o tatou agai i luma i faʻataʻitaʻiga faʻatino.
O se faʻataʻitaʻiga o le fatuina o se 'auʻaunaga ma se tisiki faʻapitonuʻu
I le faila vars.tf o fa'auma uma o le a fa'aaogaina pe a vala'au modules o lo'o fa'amatalaina. O nisi oi latou o loʻo i ai tulaga faʻaletonu, mo se faʻataʻitaʻiga, o le a faia le server i le sone ru-3a fa'atasi ai ma le fa'atulagaga nei:
Afai e manaʻomia, e mafai ona e faʻamaonia se isi faʻamatalaga lautele. O le ki e le tatau ona faʻamaonia o se ala faila; e mafai foi ona e faʻaopoopoina le tau o se manoa.
E le gata i lea i totonu o lenei faila ua faʻalauiloaina modules project_with_user и server_local_root_disk, lea e pulea punaoa talafeagai.
Se'i o tatou va'ai atili i nei modules.
Fausia se poloketi ma se tagata faʻaoga ma se matafaioi
Manatu finau ignore_changes fa'atagaina oe e le amana'ia suiga o uiga id mo le ata na faʻaaogaina e fatu ai le masini komepiuta. I le auaunaga VPC, o le tele o ata lautele e otometi ona faʻafouina faʻatasi i le vaiaso ma i le taimi lava e tasi latou id suiga foi. E mafua lenei mea ona o uiga faʻapitoa o le OpenStack component - Glance, lea e taʻua ai ata o mea e le mafai ona suia.
Afai o lo'o e faia pe suia se 'au'aunaga po'o se tisiki o lo'o iai e fai ma finauga image_id e faʻaaoga id ata lautele, a maeʻa ona faʻafouina lena ata, toe faʻaogaina le Terraform manifest o le a toe faia ai le server poʻo le disk. Fa'aaogaina o se finauga ignore_changes e mafai ai ona e aloese mai se tulaga faapena.
Manatua: finauga ignore_changes na aliali mai i Terraform i se taimi ua leva: toso#2525.
Manatu finau ignore_resize_confirmation e mana'omia e fa'alelei ai le fa'ailoga o le tisiki fa'apitonu'u, cores, po'o le manatua o le server. O ia suiga e faia e ala i le OpenStack Nova vaega e faʻaaoga ai se talosaga toe faʻafou. Fa'atonu Nova pe a uma ona talosaga toe faʻafou tuu le server i le tulaga verify_resize ma faʻatali mo faʻamaoniga faaopoopo mai le tagata faʻaoga. Ae ui i lea, o lenei amio e mafai ona suia ina ia le faatali Nova mo ni gaioiga faaopoopo mai le tagata faʻaoga.
O le finauga faʻamaonia e mafai ai e Terraform ona le faʻatali mo le tulaga verify_resize mo le 'auʻaunaga ma saunia mo le 'auʻaunaga ina ia i ai i se tulaga malosi pe a uma ona suia ona faʻamau. E maua le finauga mai le version 1.10.0 o le OpenStack Terraform provider: toso#422.
Fausia Punaoa
Aʻo leʻi faʻatinoina le faʻaaliga, faʻamolemole ia maitauina i la matou faʻataʻitaʻiga, e lua kamupani tuʻufaʻatasia e faʻalauiloaina, ma o le OpenStack provider e faʻalagolago i punaoa a le Selectel provider, talu ai e aunoa ma le fatuina o se tagata faʻaoga i le poloketi, e le mafai ona pulea mea e iai. . Ae paga lea, mo le mafuaʻaga lava e tasi e le mafai ona tatou faʻatautaia le poloaiga fa'aaoga le terraform i totonu o la tatou faataitaiga. E tatau ona tatou faia muamua faʻaaoga mo module project_with_user ma mulimuli ane mo isi mea uma.
Manatua: O lenei mataupu e leʻi foia i Terraform, e mafai ona e mulimuli i le talanoaga ile Github ile lomiga#2430 и lomiga#4149.
Matou te amataina ia modules e faʻaaoga ai le poloaiga:
$ terraform init
O le fa'atinoga o lo'o fa'aalia ai o le Terraform o lo'o la'uina i lalo fa'amatalaga lata mai a kamupani o lo'o fa'aogaina ma siaki uma modules o lo'o fa'amatalaina i le fa'ata'ita'iga.
Muamua tatou faʻaoga le module project_with_user. O lenei mea e manaʻomia ai le pasi lima lima mo fesuiaiga e leʻi setiina:
sel_account fa'atasi ai ma lau numera fa'amatalaga Selectel;
sel_token ma lau ki mo Selectel API;
user_password fa'atasi ai ma se fa'aupuga mo le tagata fa'aoga OpenStack.
O tau mo suiga muamua e lua e tatau ona ave mai laulau fa'atonu.
Mo le fesuiaiga mulimuli, e mafai ona e sau i luga o soʻo se upu faʻaulutalatala.
Mo le fa'aogaina o le module e te mana'omia le sui o tau SEL_ACCOUNT, SEL_TOKEN и USER_PASSWORD fa'atino le fa'atonuga:
A maeʻa le faʻatonuga, o le a faʻaalia e Terraform mea e manaʻo e fai ma fesili mo se faʻamaoniga:
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
O le taimi lava e fausia ai le poloketi, tagata faʻaoga ma matafaioi, e mafai ona e amata fatuina punaoa o totoe:
E mafai ona e galue faʻatasi ma le masini mataʻutia na faia e ala i le SSH e faʻaaoga ai le IP faʻamaonia.
Fa'atonu Punaoa
I le faaopoopo atu i le fatuina o punaoa e ala i Terraform, e mafai foi ona suia.
Mo se faʻataʻitaʻiga, seʻi o tatou faʻateleina le numera o cores ma manatua mo la tatou 'auʻaunaga e ala i le suia o tau mo faʻamaufaʻailoga. server_vcpus и server_ram_mb i faila examples/vpc/server_local_root_disk/main.tf:
I la matou fale fa'ata'ita'iga E mafai fo'i ona e va'ai fa'aaliga mo le fa'atupuina o masini mata'utia ma ta'avale feso'otaiga.
Fa'ata'ita'iga o le fa'atupuina o se fuifui Kubernetes
Ae tatou te leʻi agai i luma i le isi faʻataʻitaʻiga, o le a tatou faʻamamaina punaoa na tatou fatuina muamua. Ina ia faia lenei mea i le aʻa o le poloketi terraform-examples/examples/vpc/server_local_root_disk Sei o tatou taʻavale le poloaiga e tape mea OpenStack:
I tulaga uma e lua, e tatau ona e faʻamaonia le tapeina o mea uma:
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
O lenei fa'ata'ita'iga e fa'atupuina ai se poloketi, o se tagata fa'aoga e iai sona sao i totonu o le poloketi, ma fa'atupuina le tasi vaega Kubernetes. I le faila vars.tf e mafai ona e vaʻai i tulaga faʻaletonu, e pei o le numera o nodes, o latou uiga, Kubernetes version, etc.
Ina ia fatuina punaoa tutusa ma le faʻataʻitaʻiga muamua, muamua o le a tatou amata amataina modules ma fatuina punaoa module project_with_userona faia lea o isi mea uma:
O le a matou faʻafeiloaʻi le fausiaina ma le puleaina o fuifui Kubernetes e ala i le vaega OpenStack Magnum. E mafai ona e su'esu'e atili pe fa'apefea ona galue ma se fuifui i se tasi o matou tala muamuafaʻapea foʻi i totonu faavae malamalama.
Pe a saunia le fuifui, o le a fausia tisiki ma masini masini ma faʻapipiʻi uma vaega talafeagai. O sauniuniga e tusa ma le 4 minute, o le taimi lea e faʻaalia ai e Terraform savali e pei o:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
A maeʻa le faʻapipiʻi, o le a faʻaalia e Terraform ua sauni le fuifui ma faʻaalia lona ID:
E pulea le fa'aputuga Kubernetes na faia e ala ile aoga kubectl e mana'omia ona e maua le faila avanoa fa'apipi'i. Ina ia faia lenei mea, alu i le poloketi na faia e ala i Terraform i le lisi o galuega faatino i lau teugatupe:
Sosoo ai, mulimuli i le sootaga pei xxxxxx.selvpc.rulea e aliali mai i lalo ole igoa ole poloketi:
Mo fa'amatalaga saini, fa'aoga le igoa ole igoa ma le fa'aupuga na e faia e ala ile Terraform. Afai e te le'i fa'a'ole'ole vars.tf poʻo autu.tf mo la tatou faʻataʻitaʻiga, o le a maua e le tagata faʻaoga le igoa tf_user. E tatau ona e faʻaogaina le tau o le fesuiaiga e fai ma upu faʻaulu TF_VAR_user_password, lea na faʻamaonia i le amataga fa'aaoga le terraform muamua
I totonu o le galuega faatino e tatau ona e alu i le tab Kubernetes:
O le mea lea o loʻo i ai le fuifui na faia e ala i Terraform. La'u faila mo kubectl e mafai i luga o le "Access" tab:
O faʻatonuga faʻapipiʻi o loʻo maua i luga o le laupepa tutusa. kubectl ma le faʻaaogaina o le laiga config.yaml.
Ina ua maeʻa tatalaina kubectl ma le setiina o le fesuiaiga o le siosiomaga KUBECONFIG e mafai ona e faʻaogaina Kubernetes:
Pe a suia le numera o nodes, o le a tumau pea le fuifui avanoa. A maeʻa ona faʻaopoopoina se node e ala i Terraform, e mafai ona e faʻaogaina e aunoa ma se faʻaopoopo faʻaopoopo:
$ 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
iʻuga
I lenei tusiga na matou masani i auala autu e galulue ai "Virtual private cloud" e ala i Terraform. Matou te fiafia pe a e faʻaogaina le kamupani Selectel Terraform ma tuʻuina atu faʻamatalaga.
So'o se fa'ailoga e maua i le Selectel Terraform provider e mafai ona lipotia e ala i Fa'afitauli Github.