Unsa ang una - ang manok o ang itlog? Talagsaon nga pagsugod alang sa usa ka artikulo bahin sa Infrastructure-as-Code, dili ba?
Unsa ang itlog?
Kasagaran, ang Infrastructure-as-Code (IaC) usa ka deklaratibo nga paagi sa pagrepresentar sa imprastraktura. Niini gihulagway namon ang estado nga gusto namon nga makab-ot, sugod sa bahin sa hardware ug natapos sa pagsumpo sa software. Busa ang IaC gigamit alang sa:
Pagtagana sa Kapanguhaan. Kini ang mga VM, S3, VPC, ug uban pa. Panguna nga mga himan alang sa pagtrabaho: Terraform ΠΈ CloudFormation.
Ang bisan unsang code naa sa git repository. Ug sa madugay o sa madali ang lider sa grupo mohukom nga sila kinahanglan nga ibutang sa kahusay. Ug siya mag-refactor. Ug maghimo kini og pipila ka istruktura. Ug iyang makita nga kini maayo.
Maayo sab kay naa na GitLab ΠΈ GitHub-provider para sa Terraform (ug kini mao ang Software Configuration). Sa ilang tabang, mahimo nimong madumala ang tibuuk nga proyekto: mga miyembro sa team, CI / CD, git-flow, ug uban pa.
Diin gikan ang itlog?
Busa anam-anam na natong giduol ang panguna nga pangutana.
Una sa tanan, kinahanglan ka magsugod sa usa ka repository nga naghulagway sa istruktura sa ubang mga repository, lakip ang imong kaugalingon. Ug siyempre, isip bahin sa GitOps, kinahanglan nimo nga idugang ang CI aron ang mga pagbag-o awtomatiko nga ipatuman.
Kung wala pa nahimo ang Git?
Giunsa kini pagtipig sa Git?
Unsaon pag-instalar sa CI?
Kung i-deploy usab namo ang Gitlab gamit ang IaC, ug bisan sa Kubernetes?
Ug ang GitLab Runner usab sa Kubernetes?
Komosta ang Kubernetes sa cloud provider?
Unsa ang nag-una: ang GitLab diin akong i-upload ang akong code, o ang code nga naghulagway kung unsang klase sa GitLab ang akong kinahanglan?
Kuhaa ang MY_SELECTEL_TOKEN gikan sa panel my.selectel.ru.
Paghimo ug Kubernetes cluster pinaagi sa pagbalhin ug account token niini.
Kuhaa ang KUBECONFIG gikan sa gibuhat nga cluster.
I-install ang GitLab sa Kubernetes.
Kuhaa ang GitLab-token gikan sa GitLab nga gihimo alang sa tiggamit gamut.
Paghimo usa ka istruktura sa proyekto sa GitLab gamit ang GitLab-token.
Iduso ang kasamtangan nga code sa GitLab.
???
Kaayohan!
lakang 1. Ang token mahimong makuha sa seksyon Mga yawe sa API.
lakang 2. Giandam namo ang among Terraform alang sa "pagluto" sa usa ka pungpong sa 2 ka node. Kung sigurado ka nga adunay ka igo nga mga kapanguhaan alang sa tanan, mahimo nimong ma-enable ang mga auto quota:
lakang 8. Pagdala sa Git repository sa husto nga hierarchy gamit ang Gitlab Provider.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Ikasubo, ang terraform GitLab provider adunay naglutaw bug. Unya kinahanglan nimo nga papason ang nagkasumpaki nga mga proyekto sa mano-mano aron ma-ayo ang tf.state. Dayon ipadagan pag-usab ang sugo nga `$make all`
lakang 9. Gibalhin namon ang mga lokal nga repositoryo sa server.
Nakab-ot namon nga mahimo namon madumala ang tanan nga deklaratibo gikan sa among lokal nga makina. Karon gusto nako nga ibalhin ang tanan niini nga mga buluhaton sa CI ug ipadayon lang ang mga buton. Aron mahimo kini, kinahanglan natong ibalhin ang atong lokal nga estado (estado sa Terraform) ngadto sa CI. Kon unsaon pagbuhat niini anaa sa sunod nga bahin.
Subscribe sa among blogaron dili masipyat sa pagpagawas sa bag-ong mga artikulo!