Configuration du serveur CI et VPS gitlab.com

image
Dans cet article, j'ai décidé de décrire mon expérience avec la configuration de gitlab CI et des VPS loués.

Contexte


Au travail, uv. DevOps'y m'a configuré un déploiement de projets dans kubernetes ( je travaille comme Go-developer ). J'ai mon propre projet pour animaux de compagnie - et je voulais automatiser, mais je n'avais pas beaucoup envie d'élever mon gitlab (VPS n'est pas en caoutchouc de toute façon).

Donnée initiale



Créer un référentiel


Nous créons le référentiel que nous voulons automatiser.

J'ai décidé de faire des tests pour augmenter Docker avec nginx et le transférer vers la page html.

Structure du référentiel:

  • Dockerfile
    FROM nginx:latest
    COPY html /var/www/html
    COPY nginx.conf /etc/nginx/nginx.conf


  • nginx.conf
    events {}
    http {
    server {
        listen 80;
        location / {
                root /var/www/html;
        }
    }
    }


  • html
    • index.html
      <html>
      <h1>Hello, Runner!</h1>
      </html>


  • .gitlab-ci.yml
    
    image: docker:19.03.8
    
    before_script:
      - docker info
    
    build:
      stage: build
      script:
        - docker build -t hellorunner .
    
    deploy:
      stage: deploy
      script:
        - docker ps --filter name=hellorunner --quiet |  xargs --no-run-if-empty docker stop | xargs --no-run-if-empty  docker rm
        - docker run -d --restart=always --name hellorunner -p 8090:80 hellorunner
              
    after_script:
        - docker system prune -f
    


Configuration du référentiel


Ouvrez les paramètres -> CI

image

Ensuite, cliquez sur Coureurs, développez.
image

Tout d'abord, désactivez les coureurs proposés - Désactivez les coureurs partagés

image

Ensuite, nous sommes intéressés par - «Configurer manuellement un coureur spécifique»

image

Nous copions le jeton, Ă  l'avenir, nous en aurons besoin.

Préparation VPS


Installez docker .

Installez gitlab-runner .

Enregistrez un nouveau coureur.

! Dans le champ exécuteur, spécifiez la version du docker, comme dans le Dockerfile!
Dans le champ du jeton, spécifiez le jeton dont se souvient gitlab


gitlab-runner register

image

Maintenant, vous devez apporter de petites modifications Ă  la configuration du coureur.

nano /etc/gitlab-runner/config.toml

champ

volumes = ["/cache"]

changer pour

volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]

image

Redémarrer le démon

gitlab-runner restart

Retour Ă  gitlab / settings / CI / Runners Ă  nouveau.

Un coureur actif doit apparaître.

image

Modifiez le coureur en appuyant sur.

image

Autorisez l'exécution de tâches sans balises. Exécutez

image

maintenant les validations push et suivez les travaux.

image

Enfin, ouvrez le navigateur.

image

Lien vers le référentiel

PS: j'ai rencontré un problème - j'avais une image intérieure qui n'avait pas accès au réseau externe, la solution est créez le fichier /etc/docker/daemon.json :

{
    "dns": ["8.8.4.4", "8.8.8.8"]
}

 service docker restart

All Articles