Mi volt előbb - a tyúk vagy a tojás? Elég furcsa kezdet az Infrastructure-as-Code-ról szóló cikkhez, nem igaz?
Mi az a tojás?
Az Infrastructure-as-Code (IaC) leggyakrabban az infrastruktúra deklaratív ábrázolási módja. Ebben leírjuk az elérni kívánt állapotot, kezdve a hardveres résztől a szoftverkonfigurációig. Ezért az IaC-t a következőkre használják:
Erőforrás-ellátás. Ezek a virtuális gépek, az S3, a VPC stb. A munka alapvető eszközei: Terraform и Felhőképződés.
Bármely kód a git tárolókban van. A csapatvezető pedig előbb-utóbb úgy dönt, hogy rendbe kell tenni őket. És vissza fog hárulni. És létrehoz majd valami struktúrát. És látni fogja, hogy ez jó.
Az is jó, hogy már létezik GitLab и GitHub-szolgáltató a Terraform számára (ez a szoftverkonfiguráció). Segítségükkel kezelheti a teljes projektet: csapattagok, CI/CD, git-flow stb.
Honnan jött a tojás?
Tehát fokozatosan közeledünk a fő kérdéshez.
Először is egy olyan tárolóval kell kezdenie, amely leírja más tárolók szerkezetét, beleértve Önt is. És természetesen a GitOps részeként hozzá kell adnia a CI-t, hogy a változtatások automatikusan végrehajtásra kerüljenek.
Ha a Git még nem jött létre?
Hogyan kell tárolni a Gitben?
Hogyan kell telepíteni a CI-t?
Ha a Gitlabot is telepítjük IaC használatával, sőt Kubernetesben?
És a GitLab Runner is Kubernetesben?
Mi a helyzet a Kubernetestel a felhőszolgáltatóban?
Mi volt előbb: a GitLab, ahová feltöltöm a kódomat, vagy az a kód, amely leírja, hogy milyen GitLabra van szükségem?
A MY_SELECTEL_TOKEN lekérése a panelről my.selectel.ru.
Hozzon létre egy Kubernetes-fürtöt egy fiókjogkivonat átvitelével.
Töltse le a KUBECONFIG-ot a létrehozott fürtből.
Telepítse a GitLabot a Kubernetesre.
Szerezze be a felhasználó számára létrehozott GitLab-tokent a GitLab-ból gyökér.
Hozzon létre egy projektstruktúrát a GitLab-ban a GitLab-token használatával.
Küldje el a meglévő kódot a GitLab-nak.
?
Profit!
Lépés 1. A tokent a szekcióban lehet beszerezni API kulcsok.
Lépés 2. A Terraformunkat felkészítjük egy 2 csomópontból álló klaszter „sütésére”. Ha biztos benne, hogy mindenre van elegendő erőforrása, akkor engedélyezheti az automatikus kvótákat:
Lépés 8. A Git adattárak megfelelő hierarchiába állítása a Gitlab szolgáltató segítségével.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Sajnos a terraform GitLab szolgáltatónak van egy lebegő bogár. Ezután manuálisan kell törölnie az ütköző projekteket a tf.state javításához. Ezután futtassa újra a „$make all” parancsot
Lépés 9. Helyi adattárakat helyezünk át a szerverre.
Elértük, hogy mindent deklaratívan kezelhetünk a helyi gépünkről. Most szeretném átvinni ezeket a feladatokat a CI-re, és csak megnyomni a gombokat. Ehhez át kell vinnünk a helyi állapotainkat (Terraform állapot) a CI-be. Ennek módja a következő részben.
Iratkozzon fel a bloghogy ne maradj le az új cikkek megjelenéséről!