Nini kilikuja kwanza - kuku au yai? Mwanzo wa kushangaza kabisa kwa nakala kuhusu Miundombinu-kama-Msimbo, sivyo?
Je, yai ni nini?
Mara nyingi, Miundombinu-kama-Msimbo (IaC) ni njia ya kutangaza ya kuwakilisha miundombinu. Ndani yake tunaelezea hali ambayo tunataka kufikia, kuanzia sehemu ya vifaa na kuishia na usanidi wa programu. Kwa hivyo IaC inatumika kwa:
Utoaji wa Rasilimali. Hizi ni VM, S3, VPC, nk. Vyombo vya msingi vya kufanya kazi: Terraform ΠΈ Uundaji wa Wingu.
Nambari yoyote iko kwenye hazina za git. Na mapema au baadaye kiongozi wa timu ataamua kwamba wanahitaji kuwekwa kwa utaratibu. Naye atarekebisha. Na itaunda muundo fulani. Na ataona kuwa hii ni nzuri.
Ni vizuri pia kuwa tayari iko GitLab ΠΈ GitHub-mtoa huduma kwa Terraform (na hii ni Usanidi wa Programu). Kwa msaada wao, unaweza kudhibiti mradi mzima: washiriki wa timu, CI/CD, mtiririko wa git, n.k.
Yai lilitoka wapi?
Kwa hivyo tunakaribia swali kuu hatua kwa hatua.
Kwanza kabisa, unahitaji kuanza na hazina inayoelezea muundo wa hazina zingine, pamoja na wewe mwenyewe. Na bila shaka, kama sehemu ya GitOps, unahitaji kuongeza CI ili mabadiliko yatekelezwe kiotomatiki.
Ikiwa Git bado haijaundwa?
Jinsi ya kuihifadhi katika Git?
Jinsi ya kufunga CI?
Ikiwa pia tutapeleka Gitlab kwa kutumia IaC, na hata katika Kubernetes?
Na GitLab Runner pia huko Kubernetes?
Vipi kuhusu Kubernetes kwenye mtoa huduma wa wingu?
Ni nini kilikuja kwanza: GitLab ambapo nitapakia nambari yangu, au nambari inayoelezea ni aina gani ya GitLab ninayohitaji?
Pata MY_SELECTEL_TOKEN kutoka kwa paneli my.selectel.ru.
Unda kikundi cha Kubernetes kwa kuhamisha tokeni ya akaunti kwake.
Pata KUBECONFIG kutoka kwa nguzo iliyoundwa.
Sakinisha GitLab kwenye Kubernetes.
Pata ishara ya GitLab kutoka kwa GitLab iliyoundwa kwa mtumiaji mizizi.
Unda muundo wa mradi katika GitLab ukitumia ishara ya GitLab.
Sukuma msimbo uliopo kwa GitLab.
?
Faida!
Hatua ya 1. Ishara inaweza kupatikana katika sehemu Vifunguo vya API.
Hatua ya 2. Tunatayarisha Terraform yetu kwa "kuoka" kikundi cha nodes 2. Ikiwa una uhakika kuwa una rasilimali za kutosha kwa kila kitu, basi unaweza kuwezesha upendeleo wa otomatiki:
Hatua ya 8. Kuleta hazina za Git kwa uongozi sahihi kwa kutumia Mtoaji wa Gitlab.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Kwa bahati mbaya, mtoaji wa terraform GitLab ana kuelea mdudu. Kisha itabidi ufute mwenyewe miradi inayokinzana ili tf.state irekebishwe. Kisha endesha tena amri `$make all`
Tumefanikiwa kuwa tunaweza kudhibiti kila kitu kwa njia ya wazi kutoka kwa mashine yetu ya ndani. Sasa nataka kuhamisha kazi hizi zote kwa CI na bonyeza tu vitufe. Ili kufanya hivyo, tunahitaji kuhamisha majimbo yetu ya ndani (jimbo la Terraform) hadi CI. Jinsi ya kufanya hivyo ni katika sehemu inayofuata.
Jiandikishe kwa yetu blogili usikose kutolewa kwa nakala mpya!