Soláthraí Terraform Selectel

Soláthraí Terraform Selectel

Tá soláthraí oifigiúil Terraform seolta againn chun oibriú le Selectel. Ligeann an táirge seo d’úsáideoirí bainistíocht acmhainní a chur i bhfeidhm go hiomlán trí mhodheolaíocht Bonneagair de réir Cóid.

Tacaíonn an soláthraí le bainistíocht acmhainní seirbhíse faoi láthair "Scamall príobháideach fíorúil" (dá ngairtear VPC anseo feasta). Sa todhchaí, tá sé beartaithe againn bainistíocht acmhainní a chur leis le haghaidh seirbhísí eile a sholáthraíonn Selectel.

Mar is eol duit cheana féin, tá an tseirbhís VPC tógtha ar OpenStack. Mar sin féin, mar gheall ar an bhfíric nach soláthraíonn OpenStack uirlisí dúchais chun freastal ar an scamall poiblí, chuireamar an fheidhmiúlacht atá ar iarraidh i bhfeidhm i sraith de API breise a shimplíonn bainistiú rudaí ilchodacha casta agus a dhéanann an obair níos áisiúla. Tá cuid den fheidhmiúlacht atá ar fáil in OpenStack dúnta ó úsáid dhíreach, ach tá sé ar fáil tríd ár API.

Áiríonn soláthraí Selectel Terraform anois an cumas na hacmhainní VPC seo a leanas a bhainistiú:

  • tionscadail agus a gcuótaí;
  • úsáideoirí, a róil agus comharthaí;
  • folíonta poiblí, lena n-áirítear tras-réigiúnach agus VRRP;
  • ceadúnais bogearraí.

Úsáideann an soláthraí ár leabharlann poiblí Téigh chun oibriú leis an VPC API. Is foinse oscailte iad an leabharlann agus an soláthraí féin, agus déantar a bhforbairt ar Github:

Chun acmhainní scamall eile a bhainistiú, mar shampla meaisíní fíorúla, dioscaí, braislí Kubernetes, is féidir leat an soláthraí OpenStack Terraform a úsáid. Tá doiciméadú oifigiúil don dá sholáthraí ar fáil ag na naisc seo a leanas:

Ag Tosú

Chun tús a chur leis, ní mór duit Terraform a shuiteáil (is féidir treoracha agus naisc le pacáistí suiteála a fháil ag láithreán gréasáin oifigiúil).

Chun oibriú, teastaíonn eochair API Selectel ón soláthraí, a chruthaítear i painéil rialaithe cuntais.

Cruthaítear léirithe le haghaidh oibriú le Selectel ag baint úsáide as Terraform nó ag baint úsáide as sraith samplaí réamhdhéanta atá ar fáil inár stór Github: terraform-samplaí.

Tá an stór le samplaí roinnte ina dhá eolaire:

  • modúil, ina bhfuil modúil bheaga in-athúsáidte a ghlacann sraith paraiméadair mar ionchur agus a bhainistíonn sraith bheag acmhainní;
  • samplaí, ina bhfuil samplaí de shraith iomlán modúl idirnasctha.

Tar éis Terraform a shuiteáil, eochair API Selectel a chruthú agus eolas a chur ar na samplaí, déanaimis bogadh ar aghaidh go dtí samplaí praiticiúla.

Sampla de fhreastalaí a chruthú le diosca áitiúil

Breathnaímid ar shampla de thionscadal a chruthú, úsáideoir a bhfuil ról aige agus meaisín fíorúil le diosca áitiúil: terraform-samplaí/samplaí/vpc/server_local_root_disk.

I gcomhad vars.tf déantar cur síos ar na paraiméadair go léir a úsáidfear nuair a ghlaonn tú modúil. Tá luachanna réamhshocraithe ag cuid acu, mar shampla, cruthófar an freastalaí sa chrios ru-3a leis an gcumraíocht seo a leanas:

variable "server_vcpus" {
default = 4
}

variable "server_ram_mb" {
default = 8192
}

variable "server_root_disk_gb" {
default = 8
}

variable "server_image_name" {
default = "Ubuntu 18.04 LTS 64-bit"
}

I gcomhad príomh.tf Tá an soláthraí Selectel tosaithe:

provider "selectel" {
token    = "${var.sel_token}"
}

Tá an luach réamhshocraithe don eochair SSH a shuiteálfar ar an bhfreastalaí sa chomhad seo freisin:

module "server_local_root_disk" {
...
server_ssh_key      = "${file("~/.ssh/id_rsa.pub")}"
}

Más gá, is féidir eochair phoiblí eile a shonrú. Ní gá an eochair a shonrú mar chonair comhaid; is féidir leat an luach a chur leis mar theaghrán freisin.

Sa chomhad seo seoltar na modúil tionscadal_le_úsáideoir и server_local_root_diosca, a bhainistíonn na hacmhainní riachtanacha.

Breathnaímid ar na modúil seo níos mine.

Tionscadal a chruthú agus úsáideoir a bhfuil ról aige

Cruthaíonn an chéad mhodúl tionscadal agus úsáideoir a bhfuil ról aige sa tionscadal sin: terraform-samplaí/modúil/vpc/project_with_user.

Beidh an t-úsáideoir cruthaithe in ann logáil isteach go OpenStack agus a chuid acmhainní a bhainistiú. Tá an modúl simplí agus ní bhainistíonn sé ach trí aonán:

  • selectel_vpc_project_v2,
  • selectel_vpc_user_v2,
  • roghnaigh_vpc_ról_v2.

Freastalaí fíorúil a chruthú le diosca áitiúil

Déileálann an dara modúl le bainistiú a dhéanamh ar rudaí OpenStack, atá riachtanach chun freastalaí a chruthú le diosca áitiúil.

Ba cheart duit aird a thabhairt ar chuid de na hargóintí atá sonraithe sa mhodúl seo don acmhainn openstack_compute_instance_v2:

resource "openstack_compute_instance_v2" "instance_1" {
  ...

  lifecycle {
    ignore_changes = ["image_id"]
  }

  vendor_options {
    ignore_resize_confirmation = true
  }
}

Argóint neamhaird_athruithe ligeann duit neamhaird a dhéanamh d'athruithe tréithe id don íomhá a úsáidtear chun an meaisín fíorúil a chruthú. Sa tseirbhís VPC, déantar an chuid is mó d’íomhánna poiblí a nuashonrú go huathoibríoch uair sa tseachtain agus ag an am céanna a gcuid id athruithe freisin. Tá sé seo mar gheall ar shainiúlachtaí na comhpháirte OpenStack - Glance, ina mbreathnaítear ar íomhánna mar aonáin neamh-inmharthana.

Má tá tú ag cruthú nó ag modhnú freastalaí nó diosca atá ann cheana féin a bhfuil mar argóint aige íomhá_id a úsáidtear id íomhá phoiblí, ansin tar éis an íomhá sin a thabhairt cothrom le dáta, ag rith an léiriú Terraform arís athchruthóidh an freastalaí nó diosca. Ag baint úsáide as argóint neamhaird_athruithe ligeann duit a leithéid de chás a sheachaint.

Nóta: argóint neamhaird_athruithe le feiceáil in Terraform i bhfad ó shin: tarraingt#2525.

Argóint neamhaird_resize_confirmation ag teastáil chun diosca áitiúil, croíleacáin nó cuimhne an fhreastalaí a athrú go rathúil. Déantar athruithe den sórt sin tríd an gcomhpháirt OpenStack Nova ag baint úsáide as iarratas Athraigh. Réamhshocrú Nova tar éis iarratas Athraigh cuireann an freastalaí i stádas fíoraigh_athraigh méid agus fanann sé le deimhniú breise ón úsáideoir. Mar sin féin, is féidir an iompar seo a athrú ionas nach mbeidh Nova ag fanacht le gníomhartha breise ón úsáideoir.

Ceadaíonn an argóint shonraithe Terraform gan fanacht leis an stádas fíoraigh_athraigh méid don fhreastalaí agus a bheith ullamh don fhreastalaí a bheith i stádas gníomhach tar éis dó a pharaiméadair a athrú. Tá an argóint ar fáil ó leagan 1.10.0 den soláthraí OpenStack Terraform: tarraingt#422.

Acmhainní a Chruthú

Sula ndéantar na manifests a rith, tabhair faoi deara go seolfar dhá sholáthraí éagsúla inár sampla, agus braitheann an soláthraí OpenStack ar acmhainní an tsoláthraí Selectel, mar gan úsáideoir a chruthú sa tionscadal, tá sé dodhéanta na rudaí a bhaineann leis a bhainistiú. . Ar an drochuair, ar an gcúis chéanna ní féidir linn an t-ordú a rith terraform i bhfeidhm taobh istigh dár sampla. Ní mór dúinn a dhéanamh ar dtús iarratas a dhéanamh le haghaidh modúl tionscadal_le_úsáideoir agus ina dhiaidh sin do gach rud eile.

Nóta: Níl an cheist seo réitithe fós i Terraform, is féidir leat leanúint leis an bplé ar Github ag eisiúint#2430 и eisiúint#4149.

Chun acmhainní a chruthú, téigh chuig an eolaire terraform-samplaí/samplaí/vpc/server_local_root_disk, ba cheart go mbeadh a bhfuil ann mar seo:

$ ls
README.md	   main.tf		vars.tf

Tosaigh muid na modúil ag baint úsáide as an ordú:

$ terraform init

Léiríonn an t-aschur go n-íoslódálann Terraform na leaganacha is déanaí de na soláthraithe a úsáideann sé agus seiceálann sé na modúil go léir a thuairiscítear sa sampla.

Ar dtús cuirimis an modúl i bhfeidhm tionscadal_le_úsáideoir. Éilíonn sé seo luachanna a rith de láimh le haghaidh athróga nach bhfuil socraithe:

  • sel_cuntas le d'uimhir chuntais Selectel;
  • sel_token le d'eochair le haghaidh Selectel API;
  • úsáideora_phasfhocal le pasfhocal don úsáideoir OpenStack.

Ní mór na luachanna don chéad dá athróg a thógáil ó painéil rialaithe.

Maidir leis an athróg dheireanach, is féidir leat teacht suas le haon phasfhocal.

Chun an modúl a úsáid ní mór duit na luachanna a athsholáthar SEL_ACCOUNT, SEL_TOKEN и USER_PASSWORD ag rith an ordaithe:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply -target=module.project_with_user

Tar éis an t-ordú a rith, taispeánfaidh Terraform na hacmhainní atá sé ag iarraidh a chruthú agus iarrfaidh sé deimhniú:

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

Nuair a bheidh an tionscadal, an t-úsáideoir agus an ról cruthaithe, is féidir leat tosú ar na hacmhainní atá fágtha a chruthú:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply

Agus acmhainní á gcruthú agat, tabhair aird ar an aschur Terraform leis an seoladh IP seachtrach ina mbeidh an freastalaí cruthaithe inrochtana:

module.server_local_root_disk.openstack_networking_floatingip_associate_v2.association_1: Creating...
  floating_ip: "" => "x.x.x.x"

Is féidir leat oibriú leis an meaisín fíorúil cruthaithe trí SSH ag baint úsáide as an IP sonraithe.

Acmhainní Eagarthóireachta

Chomh maith le hacmhainní a chruthú trí Terraform, is féidir iad a mhodhnú freisin.

Mar shampla, déanaimis líon na gcroí agus an chuimhne dár bhfreastalaí a mhéadú trí na luachanna do na paraiméadair a athrú freastalaí_vcpus и freastalaí_ram_mb i gcomhad samplaí/vpc/server_local_root_disk/main.tf:

-  server_vcpus        = "${var.server_vcpus}"
-  server_ram_mb       = "${var.server_ram_mb}"
+  server_vcpus        = 8
+  server_ram_mb       = 10240

Tar éis seo, déanaimid seiceáil cad iad na hathruithe a leanfaidh as seo ag baint úsáide as an ordú seo a leanas:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform plan

Mar thoradh air sin, rinne Terraform athrú acmhainne openstack_compute_instance_v2 и openstack_compute_blavor_v2.

Tabhair faoi deara go mbeidh atosú ar an meaisín fíorúil cruthaithe i gceist leis seo.

Chun an chumraíocht nua meaisín fíorúil a chur i bhfeidhm, bain úsáid as an ordú terraform i bhfeidhm, a sheolamar cheana féin níos luaithe.

Taispeánfar gach réad cruthaithe i Painéil rialaithe VPC:

Soláthraí Terraform Selectel

Inár stórtha shamplacha Is féidir leat manifests a fheiceáil freisin chun meaisíní fíorúla a chruthú le tiomántáin líonra.

Sampla de bhraisle Kubernetes a chruthú

Sula bhogaimid ar aghaidh go dtí an chéad sampla eile, glanfaimid na hacmhainní a chruthaigh muid níos luaithe. Chun seo a dhéanamh i an fhréamh an tionscadail terraform-samplaí/samplaí/vpc/server_local_root_disk Rithfimid an t-ordú chun oibiachtaí OpenStack a scriosadh:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform destroy -target=module.server_local_root_disk

Ansin rith an t-ordú chun oibiachtaí API Selectel VPC a ghlanadh:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform destroy -target=module.project_with_user

Sa dá chás, beidh ort a dheimhniú go scriosadh gach réad:

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

Tá an sampla seo a leanas san eolaire terraform-samplaí/samplaí/vpc/kubernetes_cluster.

Cruthaíonn an sampla seo tionscadal, úsáideoir a bhfuil ról aige sa tionscadal, agus ardaíonn sé braisle Kubernetes amháin. I gcomhad vars.tf is féidir leat luachanna réamhshocraithe a fheiceáil, mar shampla líon na nóid, a saintréithe, leagan Kubernetes, etc.

Chun acmhainní cosúil leis an gcéad sampla a chruthú, ar an gcéad dul síos cuirfimid tús le modúil a thosú agus acmhainní modúil a chruthú tionscadal_le_úsáideoiragus ansin gach rud eile a chruthú:

$ terraform init

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply -target=module.project_with_user

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply

Déanfaimid cruthú agus bainistiú braislí Kubernetes a aistriú tríd an gcomhpháirt OpenStack Magnum. Is féidir leat tuilleadh eolais a fháil faoi conas oibriú le braisle i gceann dár ailt roimhe seo, chomh maith le bonn eolais.

Agus an braisle á ullmhú, cruthófar dioscaí agus meaisíní fíorúla agus cuirfear na comhpháirteanna riachtanacha go léir isteach. Tógann an t-ullmhúchán thart ar 4 nóiméad, agus le linn an ama seo taispeánfaidh Terraform teachtaireachtaí mar:

module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)

Nuair a bheidh an tsuiteáil críochnaithe, léireoidh Terraform go bhfuil an braisle réidh agus taispeánfaidh sé a ID:

module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Creation complete after 4m20s (ID: 3c8...)

Apply complete! Resources: 6 added, 0 changed, 0 destroyed.

Chun braisle cruthaithe Kubernetes a bhainistiú tríd an bhfóntas cubectl ní mór duit an comhad rochtana braisle a fháil. Chun seo a dhéanamh, téigh go dtí an tionscadal a cruthaíodh trí Terraform i liosta na dtionscadal i do chuntas:

Soláthraí Terraform Selectel

Ansin, lean an nasc cosúil le xxxxx.selvpc.ruatá le feiceáil faoi bhun ainm an tionscadail:

Soláthraí Terraform Selectel

Le haghaidh faisnéise logáil isteach, bain úsáid as an ainm úsáideora agus pasfhocal a chruthaigh tú trí Terraform. Más rud é nach bhfuil tú cheated vars.tf príomh.tf mar shampla, beidh an t-ainm ag an úsáideoir tf_úsáideoir. Ní mór duit luach na hathróige a úsáid mar an focal faire TF_VAR_úsáideoir_focal faire, a sonraíodh ag am tosaithe terraform i bhfeidhm níos luaithe.

Taobh istigh den tionscadal ní mór duit dul go dtí an cluaisín Kubernetes:

Soláthraí Terraform Selectel

Seo an áit a bhfuil an braisle a cruthaíodh trí Terraform suite. Íoslódáil an comhad le haghaidh cubectl is féidir leat ar an táb “Rochtain”:

Soláthraí Terraform Selectel

Tá na treoracha suiteála suite ar an gcluaisín céanna. cubectl agus úsáid a bhaint as an íoslódáil cumraíochta.yaml.

Tar éis seoladh cubectl agus an t-athróg timpeallachta a shocrú KUBECONFIG is féidir leat Kubernetes a úsáid:

$ kubectl get pods --all-namespaces

NAMESPACE        NAME                                    READY  STATUS  RESTARTS AGE
kube-system   coredns-9578f5c87-g6bjf                      1/1   Running   0 8m
kube-system   coredns-9578f5c87-rvkgd                     1/1   Running   0 6m
kube-system   heapster-866fcbc879-b6998                 1/1   Running   0 8m
kube-system   kube-dns-autoscaler-689688988f-8cxhf             1/1   Running   0 8m
kube-system   kubernetes-dashboard-7bdb5d4cd7-jcjq9          1/1   Running   0 8m
kube-system   monitoring-grafana-84c97bb64d-tc64b               1/1   Running   0 8m
kube-system   monitoring-influxdb-7c8ccc75c6-dzk5f                1/1   Running   0 8m
kube-system   node-exporter-tf-cluster-rz6nggvs4va7-minion-0 1/1   Running   0 8m
kube-system   node-exporter-tf-cluster-rz6nggvs4va7-minion-1 1/1   Running   0 8m
kube-system   openstack-cloud-controller-manager-8vrmp        1/1   Running   3 8m
prometeus-monitoring   grafana-76bcb7ffb8-4tm7t       1/1   Running   0 8m
prometeus-monitoring   prometheus-75cdd77c5c-w29gb           1/1   Running   0 8m

Is féidir líon na nóid bhraisle a athrú go héasca trí Terraform.
I gcomhad príomh.tf sonraítear an luach seo a leanas:

cluster_node_count = "${var.cluster_node_count}"

Cuirtear an luach seo in ionad ó vars.tf:

variable "cluster_node_count" {
default = 2
}

Is féidir leat an luach réamhshocraithe a athrú i vars.tf, nó sonraigh an luach riachtanach go díreach i príomh.tf:

-  cluster_node_count = "${var.cluster_node_count}"
+  cluster_node_count = 3

Chun na hathruithe a chur i bhfeidhm, mar atá i gcás an chéad sampla, bain úsáid as an ordú terraform i bhfeidhm:

$ env 
TF_VAR_sel_account=SEL_ACCOUNT 
TF_VAR_sel_token=SEL_TOKEN 
TF_VAR_user_password=USER_PASSWORD 
terraform apply

Nuair a athraíonn líon na nóid, fanfaidh an braisle ar fáil. Tar éis nód a chur leis trí Terraform, is féidir leat é a úsáid gan cumraíocht bhreise:

$ 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

Conclúid

San Airteagal seo fuaireamar eolas ar na príomhbhealaí le bheith ag obair leo "Scamall príobháideach fíorúil" trí Terraform. Beidh áthas orainn má úsáideann tú an soláthraí Terraform oifigiúil Selectel agus má thugann tú aiseolas.

Is féidir aon fhabhtanna a fhaightear sa soláthraí Selectel Terraform a thuairisciú trí Saincheisteanna Github.

Foinse: will.com

Add a comment