CICD GitLab的搭建与使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CICD GitLab的搭建与使用相关的知识,希望对你有一定的参考价值。
GitLab的搭建与使用GitLab介绍
- 开源免费
- 差异化的版本管理,离线同步机器强大的分支管理功能
- 便捷的GUIO操作界面以及强大的权限管理
- 集成度很高,能够集成绝大多数的开发工具
- 支持内置HA,保证在高并发的情况下实现高可用性
Gitlab的服务构成
- nginx: 静态web服务器
- GitLab-workhourse:轻量级的反向代理服务器
- Git-shell: 用于处理Git命令以及修稿authorized keys列表
- logrotate:日志文件管理
- Postgresql:数据库
- Redis: 缓存服务器
Gitlab的工作流程
- 创建并克隆项目
- 创建项目的Feature分支
- 编码并提交至本分支
- 推送项目分支至远程Gitlab服务器
- 进行代码检查并提交Master主分支合并申请
- 项目领导审查代码并确认合并申请
GitLab的安装与配置
- 创建Centos7虚拟机
-
登录服务器做预配置
- 关闭
firewalld
以及开机自启动 - 禁用Selinux,并重启机器
- 关闭
- 安装Omnibus Gitlab-ce Package
[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
- 证书颁发
[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
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
Gitlab的应用
- Gitlab后台管理
-
开发视角的Gitlab
- 代码提交
- 代码合并
-
运维视角的Gitlab
- 账户管理
- 权限管理
- 资源监控等
-
演示使用方法
- 用户创建,密码与权限(dev,lead)
- 加入代码仓库管理权限
- dev开发人员提交代码流程
[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 #同步代码
用dev用户登陆gitlabweb页面,然后提出merge请求
创建merge请求
lead用户登陆gitlab批准合并请求。
以上是关于CICD GitLab的搭建与使用的主要内容,如果未能解决你的问题,请参考以下文章
Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台
如何搭建自己的CI/CD平台:Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)
如何搭建自己的CI/CD平台:Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)