O le a le mea na muamua - o le moa po o le fuamoa? Ose amataga uiga ese mo se tusiga e uiga i Infrastructure-as-Code, a ea?
O le a le fuamoa?
O le tele o taimi, Infrastructure-as-Code (IaC) o se auala faʻaalia e fai ma sui o mea tetele. I totonu matou te faʻamatalaina le setete matou te manaʻo e ausia, amata mai le vaega o meafaigaluega ma faʻaiʻu i le faʻatulagaina o polokalama. O le mea lea e faʻaaogaina ai le IaC mo:
Tuuina atu o Punaoa. O VM nei, S3, VPC, ma isi. Meafaigaluega autu mo galuega: Terraform и CloudFormation.
Soʻo se code o loʻo i totonu o faleoloa git. Ma e le'i umi ae filifili le ta'ita'i o le 'au e tatau ona fa'atulaga lelei. Ma o le a ia refactor. Ma o le a fausia ai se fausaga. Ma o le a ia vaai i ai e lelei lenei mea.
E lelei foi ona ua iai GitLab и GitHub-o le tu'uina atu mo Terraform (ma o le Software Configuration lea). Faatasi ai ma la latou fesoasoani, e mafai ona e pulea le poloketi atoa: sui o le au, CI / CD, git-flow, ma isi.
O fea na sau ai le fuamoa?
O lea ua faasolosolo malie ona tatou agai atu i le fesili autu.
Muamua lava, e tatau ona e amata i se fale teu oloa e faʻamatalaina le fausaga o isi fale teu oloa, e aofia ai oe. Ma o le mea moni, o se vaega o GitOps, e te manaʻomia le faʻaopoopoina o le CI ina ia otometi ona faʻatinoina suiga.
Afai e le'i faia le Git?
E faʻafefea ona teu i Git?
Faʻafefea ona faʻapipiʻi CI?
Afai tatou te faʻaogaina foi Gitlab e faʻaaoga ai IaC, ma e oʻo lava ile Kubernetes?
Ma GitLab Runner foi i Kubernetes?
Ae faapefea Kubernetes i le cloud provider?
O le a le mea na muamua: o le GitLab lea o le a ou lafoina ai laʻu code, poʻo le code e faʻamatalaina ai le ituaiga GitLab ou te manaʻomia?
Maua MY_SELECTEL_TOKEN mai le laulau my.selectel.ru.
Fausia se fuifui Kubernetes e ala i le fesiitaiga o se fa'ailoga fa'amatalaga i ai.
Maua le KUBECONFIG mai le fuifui na faia.
Faʻapipiʻi GitLab ile Kubernetes.
Maua GitLab-token mai GitLab na faia mo le tagata faʻaoga aʻa.
Fausia se fausaga o galuega i GitLab faʻaaoga GitLab-token.
Tu'i le code o iai ile GitLab.
???
Faʻamanuia!
laa 1. E mafai ona maua le faʻailoga i le vaega API Ki.
laa 2. Matou te saunia a matou Terraform mo le " taoina "se fuifui o 2 nodes. Afai e te mautinoa o loʻo lava au punaoa mo mea uma, ona mafai lea ona e faʻaogaina le autoquotas:
O le a matou faʻaaogaina le tulaga masani mo le tele nginx-ulufale. O loʻo i ai le tele o faʻatonuga mo le faʻapipiʻiina, o lea o le a tatou le mafaufau ai i ai.
laa 8. Aumai Git repositories i le faʻatonuga saʻo e faʻaaoga ai le Gitlab Provider.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Ae paga lea, terraform GitLab provider o loʻo i ai se faʻafefe bug. Ona tatau lea ona e tapeina ma le lima ia galuega fete'ena'i ina ia mafai ona toe faaleleia le tf.state. Ona toe fai lea o le poloaiga `$faia uma`
laa 9. Matou te tuʻuina atu faleoloa i le lotoifale i le 'auʻaunaga.
Ua matou ausia e mafai ona matou faʻatautaia mea uma mai le matou masini faʻapitonuʻu. O lea ou te manaʻo e faʻafeiloaʻi uma nei galuega ile CI ma na o le oomiina o faʻamau. Ina ia faia lenei mea, matou te manaʻomia le tuʻuina atu o matou setete faʻapitonuʻu (Terraform state) i CI. O le auala e fai ai lenei mea o loʻo i le isi vaega.
Fa'asoa i la matou blogina ia aua nei misia le tatalaina o tala fou!