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
[ ~]# yum -y install curl policycoreutils openssh-server openssh-client postfix vim curl-devel [ ~]# curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash [ gitlab]# sudo systemctl start postfix && sudo systemctl enable postfix [ ~]# yum -y install gitlab-ce
- 证书颁发
[ ~]# openssl genrsa -out "/etc/gitlab/ssl/gitlab.yeecall.cn.key" 2048 [ ~]# openssl req -new -key "/etc/gitlab/ssl/gitlab.yeecall.cn.key" -out "/etc/gitlab/ssl/gitlab.yeecall.cn.csr" [ ~]# 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" [ ~]# openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048 [ ~]# 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 [ ~]# 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" [ ~]# gitlab-ctl reconfigure [ ~]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf server_name gitlab.yeecall.cn; rewrite ^(.*)$ https://$host$1 permanent; [ ~]# 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开发人员提交代码流程
[ repo]# git -c ssl.Verify=false clone https://gitlab.yeecall.cn/root/test-repo.git #使用dev克隆代码 [ repo]# cd test-repo/ [ test-repo]# git checkout -b release-1.0 #创建分支 [ test-repo]# vim test.py #更改代码 print("this is a test code") print("this is a test code for release-1.0") [ test-repo]# git add . [ test-repo]# git commit -m "release-1.0" [ test-repo]# git -c http.sslVerify=false push origin release-1.0 #同步代码
用dev用户登陆gitlabweb页面,然后提出merge请求
创建merge请求
lead用户登陆gitlab批准合并请求。
相关推荐
cxin 2020-11-06
synshitou 2020-10-21
Topbeyond 2020-08-21
happyfreeangel 2020-07-27
白开水 2020-07-19
无风的雨 2020-07-08
贤时间 2020-07-06
wishli 2020-06-28
小信 2020-06-21
leehbhs 2020-06-20
happyfreeangel 2020-06-18
83284950 2020-06-17
冯冯领队 2020-06-16
就是那个胖子 2020-06-14
83284950 2020-06-14
LiHansiyuan 2020-06-14
fcds00 2020-06-11
就是那个胖子 2020-06-11