O que foi primeiro: a galiña ou o ovo? Un comezo bastante estraño para un artigo sobre Infraestrutura-como-Código, non é?
Que é un ovo?
Na maioría das veces, Infrastructure-as-Code (IaC) é unha forma declarativa de representar a infraestrutura. Nel describimos o estado que queremos acadar, empezando pola parte de hardware e rematando coa configuración do software. Polo tanto, IaC úsase para:
Provisión de recursos. Estes son máquinas virtuales, S3, VPC, etc. Ferramentas básicas para o traballo: Terraform и CloudFormation.
Calquera código está nos repositorios git. E tarde ou cedo o líder do equipo decidirá que hai que poñerlles orde. E refactorizará. E creará algunha estrutura. E verá que isto é bo.
Tamén é bo que xa exista GitLab и GitHub-proveedor de Terraform (e isto é Configuración de software). Coa súa axuda, pode xestionar todo o proxecto: membros do equipo, CI/CD, git-flow, etc.
De onde veu o ovo?
Polo que pouco a pouco imos achegando a cuestión principal.
Primeiro de todo, cómpre comezar cun repositorio que describa a estrutura doutros depósitos, incluído vostede mesmo. E, por suposto, como parte de GitOps, cómpre engadir CI para que os cambios se executen automaticamente.
Se Git aínda non se creou?
Como almacenalo en Git?
Como instalar CI?
Se tamén implementamos Gitlab usando IaC, e mesmo en Kubernetes?
E GitLab Runner tamén en Kubernetes?
Que pasa con Kubernetes no provedor de nube?
O que foi primeiro: o GitLab onde cargarei o meu código ou o código que describe que tipo de GitLab necesito?
Crea un clúster de Kubernetes transfiríndolle un token de conta.
Obtén KUBECONFIG do clúster creado.
Instala GitLab en Kubernetes.
Obtén o token de GitLab de GitLab creado para o usuario raíz.
Crea unha estrutura de proxecto en GitLab usando GitLab-token.
Envía o código existente a GitLab.
?
Beneficio!
Paso 1. O token pódese obter na sección Claves API.
Paso 2. Preparamos o noso Terraform para "cocer" un grupo de 2 nodos. Se estás seguro de que tes recursos suficientes para todo, podes activar as cotas automáticas:
Paso 8. Levar os repositorios de Git á xerarquía correcta usando o provedor de Gitlab.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Desafortunadamente, terraform GitLab provedor ten un flotante erro. Despois terás que eliminar os proxectos en conflito manualmente para que se corrixa tf.state. A continuación, volve executar o comando `$make all`
Paso 9. Transferimos repositorios locais ao servidor.
Conseguimos que poidamos xestionar todo de forma declarativa desde a nosa máquina local. Agora quero transferir todas estas tarefas a CI e só premer os botóns. Para iso, necesitamos transferir os nosos estados locais (estado Terraform) a CI. Como facelo está na seguinte parte.
Subscríbete ao noso Blogpara non perderse o lanzamento de novos artigos!