Gitlab ISIMA / LIMOS✯
Url de la forge dédiée à la pédagogie
Url de la forge dédiée à la recherche
Prise en main✯
Pour bien démarrer avec Gitlab, vous pouvez lire le post du CRI ISIMA/LIMOS
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 d'affecter des utilisateurs externes à un projet gitlab (péda ou rcherche) existant. Procédure :
- Création d'un compte local dans notre infra : à faire soi-même ou en rédigeant un ticket en donnant nom, prénom, mail, et besoin (VPN, Gitlab recherche, ...) de l'utilisateur
- Une fois le compte créé et l'utilisateur notifié des identifiants de son compte, il doit se connecter une première fois sur Gitlab puis vous en avertir
- Son user étant créé dans Gitlab, vous pourrez alors l'intégrer comme membre d'un projet. Onglet
Project Information/members
et cliquez sur le boutonInvite members
à droite, le rechercher par son nom ou username et précisez correctement son rôle.
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
## Autres forges institutionnelles
La forge de l'UCA fermera à l'été 2023 et tous les projets qui y sont disparaitront. Si vous en avez, vous devez les migrer.
Url de la forge de Renater : SourceSup