Við höfum hleypt af stokkunum opinberum Terraform veitanda til að vinna með Selectel. Þessi vara gerir notendum kleift að innleiða auðlindastjórnun að fullu með Infrastructure-as-code aðferðafræðinni.
Þjónustuveitan styður sem stendur þjónustuauðlindastjórnun „Raunverulegt einkaský“ (hér eftir nefnt VPC). Í framtíðinni ætlum við að bæta við auðlindastjórnun fyrir aðra þjónustu sem Selectel veitir.
Eins og þú veist nú þegar er VPC þjónustan byggð á OpenStack. Hins vegar, vegna þess að OpenStack býður ekki upp á innfædd verkfæri til að þjóna almenningsskýinu, innleiddum við þá virkni sem vantaði í mengi viðbótar API sem einfalda stjórnun flókinna samsettra hluta og gera vinnuna þægilegri. Sum virkni sem til er í OpenStack er lokuð fyrir beinni notkun, en er fáanleg í gegnum API okkar.
Selectel Terraform veitandinn hefur nú möguleika á að stjórna eftirfarandi VPC auðlindum:
verkefni og kvóta þeirra;
notendur, hlutverk þeirra og tákn;
opinber undirnet, þar á meðal svæðisbundin og VRRP;
hugbúnaðarleyfi.
Þjónustuveitan notar opinbera Go bókasafnið okkar til að vinna með VPC API. Bæði bókasafnið og veitandinn sjálfur eru opinn uppspretta, þróun þeirra fer fram á Github:
Til að stjórna öðrum skýjaauðlindum, svo sem sýndarvélum, diskum, Kubernetes þyrpingum, geturðu notað OpenStack Terraform veituna. Opinber skjöl fyrir báða veitendur eru fáanleg á eftirfarandi tenglum:
Til að byrja þarftu að setja upp Terraform (leiðbeiningar og tengla á uppsetningarpakka er að finna á opinber vefsíða).
Til að starfa þarf veitandinn Selectel API lykil, sem er búinn til í reikningsstjórnborð.
Birtingarmyndir til að vinna með Selectel eru búnar til með Terraform eða með því að nota sett af tilbúnum dæmum sem eru fáanleg í Github geymslunni okkar: terraform-dæmi.
Geymslan með dæmum er skipt í tvær möppur:
einingar, sem inniheldur litlar endurnýtanlegar einingar sem taka sett af breytum sem inntak og stjórna litlu safni auðlinda;
dæmi, sem inniheldur dæmi um heildarsett af samtengdum einingum.
Eftir að Terraform hefur verið sett upp, búið til Selectel API lykil og kynnt þér dæmin skulum við halda áfram að hagnýtum dæmum.
Í skrá vars.tf öllum breytum sem verða notaðar þegar hringt er í einingar er lýst. Sum þeirra hafa sjálfgefin gildi, til dæmis verður þjónninn búinn til á svæðinu ru-3a með eftirfarandi uppsetningu:
Ef nauðsyn krefur geturðu tilgreint annan opinberan lykil. Lykillinn þarf ekki að vera tilgreindur sem skráarslóð; þú getur líka bætt gildinu við sem streng.
Lengra í þessari skrá eru einingarnar ræstar verkefni_með_notanda и server_local_root_disk, sem hafa umsjón með nauðsynlegum fjármunum.
Rök hunsa_breytingar gerir þér kleift að hunsa breytingar á eiginleikum id fyrir myndina sem notuð er til að búa til sýndarvélina. Í VPC þjónustunni eru flestar opinberar myndir uppfærðar sjálfkrafa einu sinni í viku og á sama tíma þeirra id breytist líka. Þetta er vegna sérkennis OpenStack íhlutans - Glance, þar sem myndir eru taldar óbreytanlegar einingar.
Ef þú ert að búa til eða breyta núverandi netþjóni eða diski sem hefur sem rök myndauðkenni notað id opinbera mynd, eftir að myndin hefur verið uppfærð mun endurgerð Terraform upplýsingaskránnar endurskapa þjóninn eða diskinn. Að nota rök hunsa_breytingar gerir þér kleift að forðast slíkar aðstæður.
Athugið: rök hunsa_breytingar birtist í Terraform fyrir nokkuð löngu síðan: draga #2525.
Rök ignore_resize_confirmation þarf til að breyta stærð staðbundins disks, kjarna eða minni miðlara. Slíkar breytingar eru gerðar í gegnum OpenStack Nova hluti með beiðni búa. Sjálfgefin Nova eftir beiðni búa setur netþjóninn í stöðu staðfesta_breyta stærð og bíður eftir frekari staðfestingu frá notanda. Hins vegar er hægt að breyta þessari hegðun þannig að Nova bíði ekki eftir frekari aðgerðum frá notanda.
Tilgreind rök leyfa Terraform að bíða ekki eftir stöðunni staðfesta_breyta stærð fyrir þjóninn og vertu viðbúinn því að þjónninn sé í virkri stöðu eftir að breyta breytum hans. Rökin eru fáanleg frá útgáfu 1.10.0 af OpenStack Terraform veitunni: draga #422.
Að búa til auðlindir
Áður en birtingarskrárnar eru keyrðar, vinsamlegast hafðu í huga að í dæminu okkar eru tveir mismunandi veitendur ræstir og OpenStack veitandinn er háður auðlindum Selectel veitunnar, þar sem án þess að búa til notanda í verkefninu er ómögulegt að stjórna hlutunum sem tilheyra því . Því miður, af sömu ástæðu getum við ekki bara keyrt skipunina terraform gilda inni í dæminu okkar. Við þurfum fyrst að gera sækja um fyrir mát verkefni_með_notanda og eftir það fyrir allt hitt.
Athugið: Þetta mál er ekki enn leyst í Terraform, þú getur fylgst með umræðunni á Github á tölublað #2430 и tölublað #4149.
Eftir að hafa keyrt skipunina mun Terraform sýna hvaða auðlindir það vill búa til og biðja um staðfestingu:
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
Þegar búið er að búa til verkefnið, notandann og hlutverkið geturðu byrjað að búa til tilföngin sem eftir eru:
Þú getur unnið með sýndarvélina sem búið var til í gegnum SSH með því að nota tilgreinda IP.
Að breyta tilföngum
Auk þess að búa til auðlindir í gegnum Terraform er einnig hægt að breyta þeim.
Til dæmis, við skulum auka fjölda kjarna og minni fyrir netþjóninn okkar með því að breyta gildunum fyrir færibreyturnar server_vcpus и server_ram_mb í skrá examples/vpc/server_local_root_disk/main.tf:
Í okkar dæmi um geymslur Þú getur líka séð birtingarmyndir til að búa til sýndarvélar með netdrifum.
Dæmi um að búa til Kubernetes klasa
Áður en við förum yfir í næsta dæmi munum við hreinsa upp auðlindirnar sem við bjuggum til áðan. Til að gera þetta í rót verkefnisins terraform-examples/examples/vpc/server_local_root_disk Við skulum keyra skipunina til að eyða OpenStack hlutum:
Í báðum tilfellum þarftu að staðfesta eyðingu allra hluta:
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
Þetta dæmi býr til verkefni, notanda með hlutverk í verkefninu, og vekur upp einn Kubernetes þyrping. Í skrá vars.tf þú getur séð sjálfgefin gildi, eins og fjölda hnúta, eiginleika þeirra, Kubernetes útgáfu o.s.frv.
Til að búa til tilföng svipað og fyrsta dæmið, fyrst og fremst munum við byrja að frumstilla einingar og búa til einingartilföng verkefni_með_notandaog búa svo til allt hitt:
Við munum flytja stofnun og stjórnun Kubernetes klasa í gegnum OpenStack Magnum íhlutinn. Þú getur fengið frekari upplýsingar um hvernig á að vinna með klasa í einum af okkar fyrri greinar, eins og heilbrigður eins og í þekkingargrunnur.
Þegar klasinn er undirbúinn verða diskar og sýndarvélar búnar til og allir nauðsynlegir íhlutir settir upp. Undirbúningur tekur um 4 mínútur, á þeim tíma mun Terraform birta skilaboð eins og:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
Þegar uppsetningunni er lokið mun Terraform gefa til kynna að þyrpingin sé tilbúin og sýna auðkenni hans:
Til að stjórna tilbúnum Kubernetes þyrpingunni í gegnum tólið kubectl þú þarft að fá aðgangsskrána fyrir klasa. Til að gera þetta, farðu í verkefnið sem búið var til í gegnum Terraform á lista yfir verkefni á reikningnum þínum:
Næst skaltu fylgja hlekknum eins og xxxxxx.selvpc.rusem birtist fyrir neðan nafn verkefnisins:
Fyrir innskráningarupplýsingar, notaðu notandanafnið og lykilorðið sem þú bjóst til í gegnum Terraform. Ef þú hefur ekki svindlað vars.tf eða aðal.tf fyrir dæmi okkar mun notandinn hafa nafnið tf_notandi. Þú verður að nota gildi breytunnar sem lykilorð TF_VAR_user_password, sem var tilgreint við ræsingu terraform gilda Fyrr.
Inni í verkefninu þarftu að fara í flipann Kubernetes:
Þetta er þar sem þyrpingin sem er búin til í gegnum Terraform er staðsett. Sækja skrá fyrir kubectl þú getur á flipanum „Aðgangur“:
Uppsetningarleiðbeiningar eru á sama flipa. kubectl og notkun þess sem hlaðið er niður config.yaml.
Eftir sjósetningu kubectl og stilla umhverfisbreytuna KUBECONFIG þú getur notað Kubernetes:
Þegar fjöldi hnúta breytist verður þyrpingin áfram tiltæk. Eftir að þú hefur bætt við hnút í gegnum Terraform geturðu notað hann án viðbótarstillingar:
$ 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
Ályktun
Í þessari grein kynntumst við helstu leiðum til að vinna með „Raunverulegt einkaský“ í gegnum Terraform. Við munum vera ánægð ef þú notar opinbera Selectel Terraform veituna og gefur álit.
Hægt er að tilkynna allar villur sem finnast í Selectel Terraform veitunni í gegnum Github vandamál.