Gitlab ISIMA / LIMOS★
- url de la forge: https://gitlab.isima.fr
- administrateur : Vincent Mazenod
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
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★
- python-gitlab (cli) : https://github.com/gpocentek/python-gitlab