Aller au contenu

Gitlab ISIMA / LIMOS

Prise en main

Pour bien démarrer avec Gitlab, vous pouvez lire ce post

Qui peut se connecter au Gitlab?

Tous les utilisateurs de l'Active Directory (compte windows / impression) peuvent se connecter sur https://gitlab.isima.fr.

Associer des utilisateurs externes à un projet

  • Il est possible de demander l'affectation automatique des utilisateurs créés à un projet gitlab existant

Gitlab et l'intégration continue

Gitlab permet de faire de l'intégration continue et notamment de déployer automatiquement sur une machine dès qu'une modification est faite sur le repo Gitlab

Pour cela , éditer à la racine du projet un fichier gitlab-ci.yml qui peut ressembler à cela

image: ubuntu:xenial                  # On specifie l'OS de la machine

before_script:                        # A executer avant le script
  - apt-get update                    # update puis install de l'outil rsync et openssh et config openssh
  - apt-get --yes --force-yes install rsync
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - mkdir -p ~/.ssh
  - eval $(ssh-agent -s)
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  # cette derniere ligne permet d'ajouter la cle SSH privee se trouvant dans vos variables d'environnement

# On cree ci-dessous une etape (stage) nommee deploy qui va synchroniser le repo avec votre VM  
# Tous le contenu sera supprimé et remis sauf les fichiers gitlab-ci et README
deploy_prod:
  stage: deploy                        
  script:
    - echo "deploy my_site_web"
    - rsync -av --exclude='.gitlab-ci.yml' --exclude='README.md' --delete . $PROD_USERNAME@$PROD_HOST:$PROD_ISP_PATH/

Ce fichier sera éxécuté à chaque commit de n'importe quel fichier du repo. Un runner Gitlab permettra de créer une image reconstruite de la machine en utilisant la technologie Docker

Il est intéressant d'utiliser des variables d'environnement qui ont vocation à rester cachées, elles commencent par $ dans le fichier gitlab-ci

On édite ces variables dans "Paramètres/Integration et livraison continue"

Pour l'exemple ci-dessus, on trouverait cela dans les variable d'environnement

var_environ

Enfin, vous pouvez voir que votre CI se déroule bien dans "Integration et livraison continue/Pipelines"

Patch gitlab-ci

Sur le Gitlab du Limos , la CI peut ne pas fonctionner car la vérification SSL ne passe pas.

Il faut patcher votre fichier gitlab-ci.yml en rajoutant une variable GIT_SSL_NO_VERIFY à True

image: ubuntu:xenial

variables:
  GIT_SSL_NO_VERIFY: "1"

before_script:
  - apt-get update
  - ...

Annexe