CICD (1) Construction et utilisation de GitLab

Construction et utilisation de GitLab

Introduction à GitLab

  • Open source gratuit
  • Gestion de version différenciée, fonction de gestion de branche puissante de machine de synchronisation hors ligne
  • Interface d'opération GUIO pratique et gestion puissante des autorités
  • Haut degré d'intégration, capable d'intégrer la plupart des outils de développement
  • Prise en charge de la haute disponibilité intégrée pour garantir une haute disponibilité dans des conditions de concurrence élevée

Composition du service Gitlab

  • Nginx: serveur web statique
  • GitLab-workhourse: serveur proxy inverse léger
  • Git-shell: utilisé pour traiter les commandes Git et réviser la liste des clés autorisées
  • logrotate: gestion des fichiers journaux
  • Postgresql: base de données
  • Redis: serveur de cache

Flux de travail Gitlab

  • Créer et cloner un projet
  • Créer une branche de fonction du projet
  • Code et soumettre à cette branche
  • Poussez la branche du projet vers un serveur Gitlab distant
  • Procéder à l'examen du code et soumettre une demande de fusion de succursale Master Master
  • Le chef de projet examine le code et confirme la demande de fusion

Installation et configuration de GitLab

  • Créer une machine virtuelle Centos7
  • Connectez-vous au serveur pour la pré-configuration

    • Arrêt firewalldet démarrage automatique
    • Désactivez Selinux et redémarrez la machine
  • Installer le package Omnibus Gitlab-ce
[root@centos7-node4 ~]# yum -y install curl policycoreutils openssh-server openssh-client postfix vim curl-devel
[root@centos7-node4 ~]# curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
[gitlab@centos7-node4 gitlab]# sudo systemctl start postfix && sudo systemctl enable postfix
[root@centos7-node4 ~]# yum -y install gitlab-ce
  • Délivrance de certificats
[root@centos7-node4 ~]# openssl genrsa -out "/etc/gitlab/ssl/gitlab.yeecall.cn.key" 2048
[root@centos7-node4 ~]# openssl req -new -key "/etc/gitlab/ssl/gitlab.yeecall.cn.key" -out "/etc/gitlab/ssl/gitlab.yeecall.cn.csr"
[root@centos7-node4 ~]# openssl x509 -req -days 3650 -in "/etc/gitlab/ssl/gitlab.yeecall.cn.csr" -signkey "/etc/gitlab/ssl/gitlab.yeecall.cn.key" -out "/etc/gitlab/ssl/gitlab.yeecall.cn.crt"

[root@centos7-node4 ~]# openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
[root@centos7-node4 ~]# chmod 600 /etc/gitlab/ssl/*
-rw------- 1 root root 424 Dec 22 22:44 /etc/gitlab/ssl/dhparams.pem
-rw------- 1 root root 1298 Dec 22 22:42 /etc/gitlab/ssl/gitlab.yeecall.cn.crt
-rw------- 1 root root 1082 Dec 22 22:40 /etc/gitlab/ssl/gitlab.yeecall.cn.csr
-rw------- 1 root root 1675 Dec 22 22:38 /etc/gitlab/ssl/gitlab.yeecall.cn.key
[root@centos7-node4 ~]# vim /etc/gitlab/gitlab.rb 
external_url 'https://gitlab.yeecall.cn'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.yeecall.cn.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.yeecall.cn.key"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
[root@centos7-node4 ~]# gitlab-ctl reconfigure
[root@centos7-node4 ~]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf 
server_name gitlab.yeecall.cn;
rewrite ^(.*)$ https://$host$1 permanent;
[root@centos7-node4 ~]# gitlab-ctl restart

Utilisation de Gitlab

CICD (1) Construction et utilisation de GitLab

wanghuideMBP:Desktop wanghui$ mkdir repo
wanghuideMBP:Desktop wanghui$ cd repo/
wanghuideMBP:repo wanghui$ git -c http.sslVerify=false clone https://gitlab.yeecall.cn/root/test-repo.git
wanghuideMBP:test-repo wanghui$ vim test.py
wanghuideMBP:test-repo wanghui$ git add .
wanghuideMBP:test-repo wanghui$ git commit -m "first commit"wanghuideMBP:test-repo wanghui$ git -c http.sslVerify=false push origin master

Application Gitlab

  • Gestion d'arrière-plan Gitlab
  • Gitlab dans une perspective de développement

    • Soumission de code
    • Fusion de code
  • Gitlab du point de vue de l'exploitation et de la maintenance

    • Gestion de compte
    • Gestion des autorités
    • Surveillance des ressources, etc.
  • Montrez comment utiliser

    • Création d'utilisateur, mot de passe et autorisations (dev, lead)
    • Ajouter une autorité de gestion d'entrepôt de code
  • Les développeurs de développement soumettent un flux de code
[root@centos7-node3 repo]# git -c ssl.Verify=false clone https://gitlab.yeecall.cn/root/test-repo.git   #使用dev克隆代码
[root@centos7-node3 repo]# cd test-repo/
[root@centos7-node3 test-repo]# git checkout -b release-1.0   #创建分支
[root@centos7-node3 test-repo]# vim test.py    #更改代码
print("this is a test code")
print("this is a test code for release-1.0")
[root@centos7-node3 test-repo]# git add .
[root@centos7-node3 test-repo]# git commit -m "release-1.0"
[root@centos7-node3 test-repo]# git -c http.sslVerify=false push origin release-1.0    #同步代码

Connectez-vous à la page gitlabweb en tant qu'utilisateur dev, puis soumettez une demande de fusion

Créer une demande de fusion

Les utilisateurs principaux se connectent à gitlab pour approuver la demande de fusion.

Je suppose que tu aimes

Origine blog.51cto.com/13812615/2488647
conseillé
Classement