Ano ang nauna - ang manok o ang itlog? Isang kakaibang simula para sa isang artikulo tungkol sa Infrastructure-as-Code, hindi ba?
Ano ang isang itlog?
Kadalasan, ang Infrastructure-as-Code (IaC) ay isang deklaratibong paraan ng kumakatawan sa imprastraktura. Inilalarawan namin dito ang estado na gusto naming makamit, simula sa bahagi ng hardware at nagtatapos sa pagsasaayos ng software. Samakatuwid ang IaC ay ginagamit para sa:
Paglalaan ng Mapagkukunan. Ito ay mga VM, S3, VPC, atbp. Mga pangunahing tool para sa trabaho: Terraform ΠΈ CloudFormation.
Ang anumang code ay nasa git repository. At maya-maya ay magpapasya ang pinuno ng pangkat na kailangan nilang ayusin. At magre-refactor siya. At lilikha ito ng ilang istraktura. At makikita niya na ito ay mabuti.
Buti na lang meron na GitLab ΠΈ GitHub-provider para sa Terraform (at ito ay Software Configuration). Sa tulong nila, maaari mong pamahalaan ang buong proyekto: mga miyembro ng koponan, CI/CD, git-flow, atbp.
Saan nanggaling ang itlog?
Kaya't unti-unti tayong lumalapit sa pangunahing tanong.
Una sa lahat, kailangan mong magsimula sa isang repositoryo na naglalarawan sa istraktura ng iba pang mga repositoryo, kasama ang iyong sarili. At siyempre, bilang bahagi ng GitOps, kailangan mong magdagdag ng CI upang awtomatikong maisakatuparan ang mga pagbabago.
Kung hindi pa nagagawa ang Git?
Paano ito iimbak sa Git?
Paano mag-install ng CI?
Kung i-deploy din natin ang Gitlab gamit ang IaC, at maging sa Kubernetes?
At ang GitLab Runner din sa Kubernetes?
Paano ang Kubernetes sa cloud provider?
Ano ang nauna: ang GitLab kung saan ko ia-upload ang aking code, o ang code na naglalarawan kung anong uri ng GitLab ang kailangan ko?
Kunin ang MY_SELECTEL_TOKEN mula sa panel my.selectel.ru.
Gumawa ng Kubernetes cluster sa pamamagitan ng paglilipat ng token ng account dito.
Kunin ang KUBECONFIG mula sa ginawang cluster.
I-install ang GitLab sa Kubernetes.
Kumuha ng GitLab-token mula sa GitLab na ginawa para sa user ugat.
Lumikha ng istraktura ng proyekto sa GitLab gamit ang GitLab-token.
Itulak ang umiiral na code sa GitLab.
?
Profit!
Hakbang 1. Ang token ay maaaring makuha sa seksyon Mga API Key.
Hakbang 2. Inihahanda namin ang aming Terraform para sa "pagbake" ng isang kumpol ng 2 node. Kung sigurado ka na mayroon kang sapat na mapagkukunan para sa lahat, maaari mong paganahin ang mga auto quota:
Hakbang 8. Ang pagdadala ng mga Git repository sa tamang hierarchy gamit ang Gitlab Provider.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Sa kasamaang palad, ang terraform GitLab provider ay may lumulutang surot. Pagkatapos ay kailangan mong tanggalin nang manu-mano ang mga magkasalungat na proyekto upang maayos ang tf.state. Pagkatapos ay muling patakbuhin ang command na `$make all`
Hakbang 9. Naglilipat kami ng mga lokal na repositoryo sa server.
Nakamit namin na maaari naming pamahalaan ang lahat nang deklaratibo mula sa aming lokal na makina. Ngayon gusto kong ilipat ang lahat ng mga gawaing ito sa CI at pindutin lamang ang mga pindutan. Upang gawin ito, kailangan naming ilipat ang aming mga lokal na estado (estado ng Terraform) sa CI. Kung paano ito gagawin ay nasa susunod na bahagi.
Mag-subscribe sa aming blogupang hindi makaligtaan ang paglabas ng mga bagong artikulo!