Што е прво - пилешкото или јајцето? Сосема чуден почеток за статија за Infrastructure-as-Code, нели?
Што е јајце?
Најчесто, Infrastructure-as-Code (IaC) е декларативен начин на претставување на инфраструктурата. Во него ја опишуваме состојбата што сакаме да ја постигнеме, почнувајќи од хардверскиот дел и завршувајќи со конфигурацијата на софтверот. Затоа IaC се користи за:
Обезбедување ресурси. Тоа се VMs, S3, VPC итн. Основни алатки за работа: Terraform и Облак Формирање.
Секој код е во git складишта. И порано или подоцна, лидерот на тимот ќе одлучи дека тие треба да се стават во ред. И тој ќе рефакторира. И тоа ќе создаде одредена структура. И тој ќе види дека ова е добро.
Исто така, добро е што веќе постои GitLab и GitHub-провајдер за Terraform (а ова е софтверска конфигурација). Со нивна помош, можете да управувате со целиот проект: членови на тимот, CI/CD, git-flow итн.
Од каде дојде јајцето?
Така, постепено се приближуваме до главното прашање.
Пред сè, треба да започнете со складиште кое ја опишува структурата на другите складишта, вклучително и вие самите. И, се разбира, како дел од GitOps, треба да додадете CI за промените да се извршуваат автоматски.
Ако Git сè уште не е создаден?
Како да го складирате во Git?
Како да инсталирате CI?
Ако го распоредиме и Gitlab користејќи IaC, па дури и во Kubernetes?
И GitLab Runner исто така во Kubernetes?
Што е со Kubernetes во провајдерот на облак?
Што дојде прво: GitLab каде што ќе го подигнам мојот код или кодот што опишува каков вид GitLab ми треба?
Добијте MY_SELECTEL_TOKEN од панелот my.selectel.ru.
Создадете кластер Kubernetes со префрлање на токен за сметка на него.
Добијте KUBECONFIG од креираниот кластер.
Инсталирајте го GitLab на Kubernetes.
Земете 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. Потоа повторно извршете ја командата `$ make all`
Постигнавме дека можеме да управуваме со сè декларативно од нашата локална машина. Сега сакам да ги префрлам сите овие задачи на CI и само да притискам копчиња. За да го направите ова, треба да ги пренесеме нашите локални држави (држава Тераформ) во CI. Како да го направите ова е во следниот дел.
Претплатете се на нашата блогза да не го пропуштите објавувањето на нови статии!