Hvað kom á undan - hænan eða eggið? Alveg undarleg byrjun á grein um Infrastructure-as-Code, er það ekki?
Hvað er egg?
Oftast er Infrastructure-as-Code (IaC) yfirlýsingaleið til að tákna innviði. Þar lýsum við ástandinu sem við viljum ná, frá vélbúnaðarhlutanum og endar með hugbúnaðaruppsetningu. Þess vegna er IaC notað fyrir:
Auðlindaráð. Þetta eru VM, S3, VPC osfrv. Grunnverkfæri fyrir vinnu: Terraform и CloudFormation.
Hvaða kóða sem er er í git geymslum. Og fyrr eða síðar mun liðsstjórinn ákveða að það þurfi að koma þeim í lag. Og hann mun endurskoða. Og það mun skapa einhverja uppbyggingu. Og hann mun sjá að þetta er gott.
Það er líka gott að það sé nú þegar til GitLab и GitHub-veita fyrir Terraform (og þetta er hugbúnaðarstillingar). Með hjálp þeirra geturðu stjórnað öllu verkefninu: liðsmönnum, CI/CD, git-flow o.s.frv.
Hvaðan kom eggið?
Þannig að við erum smám saman að nálgast aðalspurninguna.
Fyrst af öllu þarftu að byrja á geymslu sem lýsir uppbyggingu annarra geymslu, þar á meðal sjálfan þig. Og auðvitað, sem hluti af GitOps, þarftu að bæta við CI þannig að breytingar séu framkvæmdar sjálfkrafa.
Ef Git hefur ekki verið búið til ennþá?
Hvernig á að geyma það í Git?
Hvernig á að setja upp CI?
Ef við sendum líka Gitlab með IaC, og jafnvel í Kubernetes?
Og GitLab Runner líka í Kubernetes?
Hvað með Kubernetes í skýjaveitunni?
Hvað kom fyrst: GitLab þar sem ég mun hlaða upp kóðanum mínum, eða kóðann sem lýsir hvers konar GitLab ég þarf?
Fáðu MY_SELECTEL_TOKEN frá spjaldinu my.selectel.ru.
Búðu til Kubernetes klasa með því að flytja reikningslykil á hann.
Fáðu KUBECONFIG úr stofnaða þyrpingunni.
Settu upp GitLab á Kubernetes.
Fáðu GitLab-tákn frá GitLab búið til fyrir notanda rót.
Búðu til verkefnaskipulag í GitLab með því að nota GitLab-tákn.
Ýttu núverandi kóða í GitLab.
??
Hagnaður!
Skref 1. Táknið er hægt að nálgast í kaflanum API lyklar.
Skref 2. Við undirbúum Terraform okkar til að „baka“ þyrping af 2 hnútum. Ef þú ert viss um að þú hafir nóg fjármagn fyrir allt, þá geturðu virkjað sjálfvirka kvóta:
Við munum nota staðlaða fyrir marga nginx-inngangur. Það eru nú þegar til fullt af leiðbeiningum um uppsetningu þess, svo við munum ekki dvelja við það.
Skref 8. Koma Git geymslum í rétt stigveldi með því að nota Gitlab Provider.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Því miður er terraform GitLab veitandi með fljótandi galla. Þá verður þú að eyða verkefnum sem stangast á handvirkt til að hægt sé að laga tf.state. Keyrðu síðan skipunina `$make all` aftur
Skref 9. Við flytjum staðbundnar geymslur yfir á netþjóninn.
Við höfum náð að við getum stjórnað öllu með yfirlýsandi hætti frá staðbundinni vél okkar. Nú vil ég flytja öll þessi verkefni yfir á CI og ýta bara á takka. Til að gera þetta þurfum við að flytja staðbundin ríki okkar (Terraform ríki) til CI. Hvernig á að gera þetta er í næsta hluta.
Gerast áskrifandi að okkar bloggtil að missa ekki af útgáfu nýrra greina!