GitLab服务器搭建
使用rpm包本地部署GitLab服务器
# 确认GitLab主机硬件配置,注GitLab服务器至少要有4G内存,关闭SWAP分区
[root@gitlab ~]# free -m
total used free shared buff/cache available
Mem: 4021 116 3786 16 118 3720
Swap: 0 0 0
# 安装依赖包
[root@gitlab ~]# yum install -y policycoreutils-python-utils
# 强制忽略依赖安装
[root@gitlab GitLab]# rpm -ivh --nodeps --force gitlab-ce-12.4.6-ce.0.el7.x86_64.rpm
[root@gitlab GitLab]# rpm -qa | grep gitlab
gitlab-ce-12.4.6-ce.0.el7.x86_64
# 重载GitLab配置
[root@gitlab GitLab]# gitlab-ctl reconfigure
# 重启Git相关服务
[root@gitlab GitLab]# gitlab-ctl restart
GitLab使用
# GitLab主机确认80端口被监听
[root@gitlab GitLab]# ss -tnlp | grep nginx
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3946,fd=7),("nginx",pid=3945,fd=7),("nginx",pid=3944,fd=7))
LISTEN 0 511 0.0.0.0:8060 0.0.0.0:* users:(("nginx",pid=3946,fd=8),("nginx",pid=3945,fd=8),("nginx",pid=3944,fd=8))
# 浏览器访问: http://192.168.88.20/
- 先修改密码
- 通过修改后的密码进行登录,用户名默认为root
- 登录成功后,会显示以下页面
- 修改配置项,将语言修改为中文
GitLab用户管理
- 进入管理界面
- 创建新用户
- 设置密码
GitLab组管理
# 向群组中添加用户时,会涉及以下权限
- guest--------->老板
- reporter------>测试人员
# 上面人员只可以查看代码,下面人员可以向仓库中推送
- developer----->开发者
- maintainer---->维护者
- owner--------->创建者
Git项目管理
代码托管
# 关联Programer主机myproject仓库与GitLab服务器上myproject项目
#参考提示命令"推送已有Git仓库部分"
[root@Programer ~]# cd myproject/
[root@Programer myproject]# git remote -v #查看远程仓库关联信息
[root@Programer myproject]# git remote add origin http://192.168.88.20/devops/myproject.git #关联远程项目
[root@Programer myproject]# git remote -v #查看远程想看关联信息
origin http://192.168.88.20/devops/myproject.git (fetch)
origin http://192.168.88.20/devops/myproject.git (push)
[root@Programer myproject]# git push -u origin --all #推送本地仓库所有分支
Username for 'http://192.168.88.20': mark #用户名
Password for 'http://mark@192.168.88.20': #密码
枚举对象中: 29, 完成.
对象计数中: 100% (29/29), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (19/19), 完成.
写入对象中: 100% (29/29), 2.21 KiB | 2.21 MiB/s, 完成.
总共 29(差异 5),复用 0(差异 0),包复用 0
remote:
remote: To create a merge request for feature, visit:
remote: http://gitlab.example.com/devops/myproject/merge_requests/new?merge_request%5Bsource_branch%5D=feature
remote:
remote: To create a merge request for hotfix, visit:
remote: http://gitlab.example.com/devops/myproject/merge_requests/new?merge_request%5Bsource_branch%5D=hotfix
remote:
To http://192.168.88.20/devops/myproject.git
* [new branch] feature -> feature
* [new branch] hotfix -> hotfix
* [new branch] master -> master
分支 'feature' 设置为跟踪来自 'origin' 的远程分支 'feature'。
分支 'hotfix' 设置为跟踪来自 'origin' 的远程分支 'hotfix'。
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
[root@Programer myproject]# git push -u origin --tags #推送本地仓库所有标签
Username for 'http://192.168.88.20': mark #用户名
Password for 'http://mark@192.168.88.20': #密码
总共 0(差异 0),复用 0(差异 0),包复用 0
To http://192.168.88.20/devops/myproject.git
* [new tag] v1 -> v1
HTTP免密推送
#每次推送都需要认证,可以设置免密推送
#store:永久存储
#cache:默认缓存15分钟,期间无需认证,可通过cache --timeout=3600设置超时时间
#git remote add origin http://name:pass@192.168.88.20/devops/myproject.git
[root@Programer myproject]# git config --global credential.helper store #持久保存
[root@Programer myproject]# git push #推送代码(本次需要认证)
Username for 'http://192.168.88.20': mark #用户名
Password for 'http://mark@192.168.88.20': #密码
Everything up-to-date
[root@Programer myproject]# git push #再次推送测试免密
Everything up-to-date
[root@Programer myproject]# git config --list
user.name=mark
user.email=mark@tedu.cn
init.defaultbranch=master
credential.helper=store
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=http://192.168.88.20/devops/myproject.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.feature.remote=origin
branch.feature.merge=refs/heads/feature
branch.hotfix.remote=origin
branch.hotfix.merge=refs/heads/hotfix
branch.master.remote=origin
branch.master.merge=refs/heads/master
[root@Programer myproject]# cat ~/.git-credentials
http://mark:1234.com@192.168.88.20
HIS代码托管
- HIS代码准备
#Programer主机准备HIS代码
[root@Programer ~]# ls HIS.zip
HIS.zip
[root@Programer ~]# unzip HIS.zip #解压项目代码压缩包
[root@Programer ~]# ls HIS
HIS-BACKEND #HIS项目后端代码,SpringBoot框架编写
HIS-CONFIG #HIS项目后端程序运行配置文件
HIS-FONTEND #HIS项目前端代码(已编译)
HIS-FONTEND-DEPENDENCY #HIS项目前端代码编译依赖库(npm库)
HIS-FONTEND-SOURCECODE #HIS项目前端代码(未编译,VUE框架编写)
HIS-SQL #HIS项目数据库SQL文件
[root@Programer ~]#
- HIS后端代码托管
#关联GitLab服务器HIS-BACKEND项目与Programer主机HIS-BACKEND代码
[root@Programer ~]# cd HIS/HIS-BACKEND/
[root@Programer HIS-BACKEND]# git init #初始化仓库
已初始化空的 Git 仓库于 /root/HIS/HIS-BACKEND/.git/
[root@Programer HIS-BACKEND]# git remote add origin http://192.168.88.20/devops/HIS-BACKEND.git #关联本地与远程
[root@Programer HIS-BACKEND]# git remote -v
origin http://192.168.88.20/devops/HIS-BACKEND.git (fetch)
origin http://192.168.88.20/devops/HIS-BACKEND.git (push)
[root@Programer HIS-BACKEND]# git add ./ #添加代码到暂存区
[root@Programer HIS-BACKEND]# git commit -m "Init Backend Code" #提交本地版本库
[root@Programer HIS-BACKEND]# git tag v1 #创建v1标签
[root@Programer HIS-BACKEND]# git push -u origin --all #推送本地所有分支
枚举对象中: 518, 完成.
对象计数中: 100% (518/518), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (464/464), 完成.
写入对象中: 100% (518/518), 272.81 KiB | 5.57 MiB/s, 完成.
总共 518(差异 256),复用 0(差异 0),包复用 0
remote: Resolving deltas: 100% (256/256), done.
To http://192.168.88.20/devops/HIS-BACKEND.git
* [new branch] master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
[root@Programer HIS-BACKEND]# git push -u origin --tags #推送本地所有标签
总共 0(差异 0),复用 0(差异 0),包复用 0
To http://192.168.88.20/devops/HIS-BACKEND.git
* [new tag] v1 -> v1
[root@Programer HIS-BACKEND]#
- HIS前端代码托管
#关联GitLab服务器HIS-FONTEND项目与Programer主机HIS-FONTEND代码
[root@Programer HIS-BACKEND]# cd
[root@Programer ~]# cd HIS/HIS-FONTEND
[root@Programer HIS-FONTEND]# git init #初始化仓库
已初始化空的 Git 仓库于 /root/HIS/HIS-FONTEND/.git/
[root@Programer HIS-FONTEND]# git remote add origin http://192.168.88.20/devops/HIS-FONTEND.git #关联本地与远程
[root@Programer HIS-FONTEND]# git remote -v
origin http://192.168.88.20/devops/HIS-FONTEND.git (fetch)
origin http://192.168.88.20/devops/HIS-FONTEND.git (push)
[root@Programer HIS-FONTEND]# git add ./ #添加文件到暂存区
[root@Programer HIS-FONTEND]# git commit -m "Init Fontend Code" #提交到本地版本库
[root@Programer HIS-FONTEND]# git push -u origin --all #推送所有分支
枚举对象中: 81, 完成.
对象计数中: 100% (81/81), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (81/81), 完成.
写入对象中: 100% (81/81), 2.91 MiB | 8.10 MiB/s, 完成.
总共 81(差异 16),复用 0(差异 0),包复用 0
To http://192.168.88.20/devops/HIS-FONTEND.git
* [new branch] master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
[root@Programer HIS-FONTEND]# git push -u origin --tags #推送所有标签
总共 0(差异 0),复用 0(差异 0),包复用 0
To http://192.168.88.20/devops/HIS-FONTEND.git
* [new tag] v1 -> v1
[root@Programer HIS-FONTEND]#