Алдымен не келді - тауық немесе жұмыртқа? Инфраструктура-код туралы мақала үшін өте таңқаларлық бастама, солай емес пе?
Жұмыртқа дегеніміз не?
Көбінесе Infrastructure-as-Code (IaC) инфрақұрылымды көрсетудің декларативті тәсілі болып табылады. Онда біз аппараттық бөліктен бастап бағдарламалық құрал конфигурациясына дейін қол жеткізгіміз келетін күйді сипаттаймыз. Сондықтан IaC мыналар үшін қолданылады:
Ресурстық қамтамасыз ету. Бұл VM, S3, VPC және т.б. Жұмыстың негізгі құралдары: Terraform и CloudFormation.
Кез келген код git репозиторийлерінде болады. Ал ерте ме, кеш пе, топ басшысы оларды ретке келтіру керек деп шешеді. Және ол рефактор болады. Және ол қандай да бір құрылымды жасайды. Және ол мұның жақсы екенін көреді.
Оның бұрыннан бар екені де жақсы GitLab и GitHub-Terraform провайдері (және бұл бағдарламалық құрал конфигурациясы). Олардың көмегімен сіз бүкіл жобаны басқара аласыз: топ мүшелері, CI/CD, git-flow және т.б.
Жұмыртқа қайдан пайда болды?
Сондықтан біз бірте-бірте негізгі сұраққа жақындаймыз.
Ең алдымен, басқа репозиторийлердің құрылымын сипаттайтын репозиторийден бастау керек, соның ішінде өзіңіз де. Әрине, GitOps бөлігі ретінде өзгертулер автоматты түрде орындалатындай етіп CI қосу керек.
Егер Git әлі жасалмаған болса?
Оны Git-те қалай сақтауға болады?
CI қалай орнатуға болады?
Егер біз Gitlab-ті IaC арқылы, тіпті Kubernetes-те де қолдансақ?
Сондай-ақ GitLab Runner Kubernetes-те ме?
Бұлттық провайдердегі Kubernetes туралы не деуге болады?
Алдымен не болды: кодты жүктеп салатын GitLab немесе маған қандай GitLab қажет екенін сипаттайтын код?
Тіркелгі белгісін тасымалдау арқылы Kubernetes кластерін жасаңыз.
Жасалған кластерден KUBECONFIG алыңыз.
Kubernetes жүйесіне GitLab орнатыңыз.
Пайдаланушы үшін жасалған GitLab жүйесінен GitLab токенін алыңыз түбір.
GitLab-токенді пайдаланып GitLab жүйесінде жоба құрылымын жасаңыз.
Бар кодты GitLab жүйесіне итеріңіз.
???
Пайда!
қадам 1. Токенді бөлімде алуға болады API кілттері.
қадам 2. Біз Terraform-ты 2 түйіннен тұратын кластерді «пісіруге» дайындаймыз. Егер сізде барлығына жеткілікті ресурстар бар екеніне сенімді болсаңыз, автоматты квоталарды қосуға болады:
қадам 8. Git репозиторийлерін Gitlab провайдері арқылы дұрыс иерархияға келтіру.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Өкінішке орай, terraform GitLab провайдерінде қалқымалы бар қате. Содан кейін tf.state түзетілуі үшін қайшылықты жобаларды қолмен жоюға тура келеді. Содан кейін «$барлығын жасау» пәрменін қайта іске қосыңыз
қадам 9. Біз жергілікті репозиторийлерді серверге тасымалдаймыз.
Біз жергілікті құрылғыдан барлығын декларациялық түрде басқара алатынымызға қол жеткіздік. Енді мен осы тапсырмалардың барлығын CI-ге ауыстырғым келеді және жай ғана түймелерді басыңыз. Ол үшін жергілікті штаттарымызды (Terraform штаты) CI-ге ауыстыруымыз керек. Мұны қалай істеу керектігі келесі бөлімде.
Біздің жазылым блогжаңа мақалалардың шығуын жіберіп алмау үшін!