Əvvəlcə nə gəldi - toyuq və ya yumurta? Infrastructure-as-Code haqqında məqalə üçün olduqca qəribə başlanğıcdır, elə deyilmi?
Yumurta nədir?
Çox vaxt İnfrastructure-as-Code (IaC) infrastrukturu təmsil etməyin deklarativ üsuludur. Orada biz hardware hissəsindən başlayaraq proqram konfiqurasiyasına qədər nail olmaq istədiyimiz vəziyyəti təsvir edirik. Beləliklə, IaC aşağıdakılar üçün istifadə olunur:
Resurs Təminatı. Bunlar VM-lər, S3, VPC və s. İş üçün əsas alətlər: Terraform и CloudFormation.
İstənilən kod git depolarındadır. Və gec-tez komanda rəhbəri qərar verəcək ki, onları qaydaya salmaq lazımdır. Və o, refaktor edəcək. Və müəyyən struktur yaradacaq. Və bunun yaxşı olduğunu görəcək.
Onun artıq mövcud olması da yaxşıdır GitLab и Github-Terraform üçün provayder (və bu Proqram Konfiqurasiyasıdır). Onların köməyi ilə siz bütün layihəni idarə edə bilərsiniz: komanda üzvləri, CI/CD, git-flow və s.
Yumurta haradan gəldi?
Beləliklə, biz tədricən əsas suala yaxınlaşırıq.
İlk növbədə, özünüz də daxil olmaqla, digər depoların strukturunu təsvir edən bir depodan başlamalısınız. Və əlbəttə ki, GitOps-un bir hissəsi olaraq, dəyişikliklərin avtomatik yerinə yetirilməsi üçün CI əlavə etməlisiniz.
Git hələ yaradılmayıbsa?
Onu Git-də necə saxlamaq olar?
CI-ni necə quraşdırmaq olar?
Gitlab'ı IaC-dən istifadə edərək və hətta Kubernetes-də yerləşdirsək?
GitLab Runner də Kubernetes-də?
Bulud provayderindəki Kubernetes haqqında nə demək olar?
Əvvəlcə nə gəldi: kodumu yükləyəcəyim GitLab, yoxsa mənə hansı GitLab lazım olduğunu təsvir edən kod?
Paneldən MY_SELECTEL_TOKEN əldə edin my.selectel.ru.
Hesab işarəsini ona köçürməklə Kubernetes klasteri yaradın.
Yaradılmış klasterdən KUBECONFIG əldə edin.
GitLab-ı Kubernetes-də quraşdırın.
İstifadəçi üçün yaradılmış GitLab-dan GitLab-token alın kök.
GitLab-token istifadə edərək GitLab-da layihə strukturu yaradın.
Mövcud kodu GitLab-a itələyin.
?
Mənfəət!
1 addım. Tokeni bölmədə əldə etmək olar API açarları.
2 addım. Terraformumuzu 2 qovşaqdan ibarət çoxluğu “bişirmək” üçün hazırlayırıq. Hər şey üçün kifayət qədər resursunuz olduğuna əminsinizsə, o zaman avtomatik kvotaları aktivləşdirə bilərsiniz:
8 addım. Gitlab Provayderindən istifadə edərək Git depolarının düzgün iyerarxiyaya gətirilməsi.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Təəssüf ki, terraform GitLab provayderində üzən var səhv. Sonra tf.state-in düzəldilməsi üçün ziddiyyətli layihələri əl ilə silməli olacaqsınız. Sonra “$hamısını düzəlt” əmrini yenidən yerinə yetirin
Yerli maşınımızdan hər şeyi deklarativ şəkildə idarə edə bildiyimizə nail olduq. İndi bütün bu tapşırıqları CI-yə köçürmək və sadəcə düymələri sıxmaq istəyirəm. Bunun üçün yerli ştatlarımızı (Terraform dövləti) CI-yə köçürməliyik. Bunu necə etmək növbəti hissədə.
Bizim kanalımıza abunə olun blogyeni məqalələrin buraxılışını qaçırmamaq üçün!