====== Gitlab ====== Gitlab est une interface pour git, il nous permet de visualiser facilement nos dépôts git. Plus que ça il permet d'organiser des projets en les regroupants par groupes, en nous permettant de rapporter toute erreur (Issues) ainsi que de soumettre des patchs correctifs de amnière automatisé (Merge Request). On peut également mettre en place un wiki propre au projet. Le serveur possède deux IP: 192.168.102.32 157.159.40.16 Il est aussi dans le DNS : gitlab.minet.net Ces deux IPs sont accessibles sur le port 8088 pour le web et en 22 & 2222 pour ssh. Rappel: Le port 22 est bloqué par le pare-feu de l'INT si vous êtes à l'exterieur du campus. ====Maintenance==== Pour voir l'état des services utilisez : $ gitlab-ctl status Si il y a un problème : $ gitlab-ctl restart ====Installation==== On utilise l'installateur omnibus : One reason the Omnibus package is more reliable is its use of Runit to restart any of the GitLab processes in case one crashes. On heavily used GitLab instances the memory usage of the Sidekiq background worker will grow over time. Omnibus packages solve this by letting the Sidekiq terminate gracefully if it uses too much memory. After this termination Runit will detect Sidekiq is not running and will start it. Since installations from source don't have Runit, Sidekiq can't be terminated and its memory usage will grow over time. Toutes les infos sont sur : http://doc.gitlab.com/omnibus/ ====Configuration==== Tout se passe dans /etc/gitlab/gitlab.rb, on fait les modifications puis on fait : $ gitlab-ctl reconfigure Ce qui va automatiquement generer les fichiers de configuration des services de Gitlab. Fichiers de configuration générés dans : /var/opt/gitlab/. Réécrits à chaque "reconfigure" mais utile pour débugger. Les repos s'y trouvent aussi sous git-data. Les lignes qui nous concernent sont : Configuration de l'URL et du port : external_url 'http://gitlab.minet.net:8088' Configuration du LDAP (remplacer l'utilisateur et le MdP) : gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' Minet: # 'main' is the GitLab 'provider ID' of this LDAP server label: 'Ldap' host: 'ldap-master.minet.net' port: 389 uid: 'uid' method: 'plain' # "tls" or "ssl" or "plain" bind_dn: 'cn=[identifiant_inspecteur],dc=minet,dc=net' password: '[Mdp_inspecteur]' active_directory: false allow_username_or_email_login: false block_auto_created_users: false base: 'dc=minet,dc=net' user_filter: '' attributes: username: ['uid', 'userid', 'sAMAccountName'] email: ['mail', 'email', 'userPrincipalName'] name: 'cn' first_name: 'givenName' last_name: 'sn' EOS Les backups : gitlab_rails['manage_backup_path'] = true gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" gitlab_rails['backup_archive_permissions'] = 0644 Le nombre de processus sidekick (augmenter si le gitlab met du temps à répondre) : sidekiq['log_directory'] = "/var/log/gitlab/sidekiq" sidekiq['shutdown_timeout'] = 4 sidekiq['concurrency'] = 15 ====Mise à jour==== Contrairement à d'autre services, la mise à jour est plutot simple et presque sans risque : $ sudo apt-get update $ sudo apt-get install gitlab-ce Un backup de la base de donnée est fait automatiquement. ====Informations complémentaires==== - Les repos importées depuis l'ancien Gitlab sont stockés sur un compte Administrator (compte Standard hors LDAP). - Par défaut les branches master sont "protected" ce qui peux faire planter les scripts de push. - L'utilisateur automatique pour les scripts est git.