gitlab最近越来越流行,公司这边也开始打算从svn转到git。所以在自己买的阿里云服务器上练练手,我的阿里云服务器是CentOS 8.2 版本。
1、安装git依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
2、下载gitlab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
这个镜像有点大,但是在阿里云服务器上下载我的是8M的带宽所以大概几十秒一分钟就好了。
3、安装gitlab
rpm -ivh gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
这里有的人会遇到问题(我自己在安装的时候也遇到这样的问题,摸索之后得到解决):安装得时候会提示rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
解决:在语句后面加上 --force --nodeps
rpm -ivh gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm --force --nodeps
4、安装完成之后,修改gitlab配置文件,指定服务器ip和自定义端口
修改配置文件
vim /etc/gitlab/gitlab.rb
在gitlab.rb文件中找到 external_ur 部位
#修改访问URL
#格式:external_url 'http://ip:端口'
external_url 'http://自己的ip:8081'
#配置时区(可以不用配置)
gitlab_rails['time_zone'] = 'Asia/Shanghai'
在gitlab.rb文件中找到 unicorn['port']=8080 部位 ,将其前面的注释去掉并将8080改成之前设置的8081.
这里注意一下,gitlab默认端口是8080 ,但是8080端口经常被占用,(我的8080端口tomcat占用着)所以要将这个端口设置为8081
5、防火墙开放端口,# 开放上面配置的external_url中的 8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
这里有的人会出现错误:FirewallD is not running,原因是因为防火墙没有开启
解决:开启防火墙
systemctl start firewalld
6、重启防火墙
firewall-cmd --reload
7、查看端口号是否开启
firewall-cmd --query-port=8081/tcp
8、重置Gitlab(让修改后的配置生效)
gitlab-ctl reconfigure
这里要加载的东西很多,要耐心等待
9、重启Gitlab
gitlab-ctl restart
提示"ok:run:"代表启动成功
下面附上GitLab服务端常用命令:
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 刷新配置文件;
vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
gitlab-ctl tail # 查看日志;
10、接下来就可以访问GIblab页面了
因为我这个没有域名,所以就直接在浏览器上输入服务器的ip+刚才设置的端口进行访问
初始管理员账户时:root,第一次访问gitlab时会自动进入管理员密码设置页面,需要你重新设置密码
这里有的小伙伴会出现问题:GITLAB 502 NOT RESPONDING 就是502错误
解决方式:这个问题引起的原因很多
上网查了之后是:a、虚拟机内存不够导致的,要保证Gitlab可用运行内存大于4G,b、端口未被占用,否则跑不起来
我这边是之前配置的端口是8080,没有做修改跟tomcat的端口冲突了,所以改成了8081之后问题解决
11、添加用户
当管理员在Gitlab新建用户后,系统会自动发送邮件到用户邮箱,用户通过点击邮件链接可自己配置密码;
注:创建用户后,用户将收到邮件,邮件可能被拉黑,请到垃圾邮箱中查阅;
12、Gitlab权限管理
Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master(Maintainer)、Owner
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal