Linux系统下搭建Gitlab服务器
GitLab有社区版(CE) 和企业版(EE),社区版是免费,对绝大部分公司来说功能是足够用了 ,在企业内部搭建,可以创建私有项目。
下面介绍在CentOS7上安装gitlab-ce社区版的步骤
1. 安装前准备
在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget(用于从外网上下载插件)
以上这些可以不用考虑安装,因为CentOS7中已经自带安装好了ssh,防火墙,wget
配置:建议CPU2核,内存4G以上,因为gitlab对系统要求比较高,启动后占用很大内存,否则访问会报502错误
2. 添加gitlab镜像源并安装gitlab服务器
镜像地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
添加gitlab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
镜像有点大,下载比较慢,根据网速快慢,需要等几分钟或者十几分钟
3. 安装gitlab
安装rpm包,安装命令:
rpm -ivh gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm
安装过程需要些时间,安心等待,如果出现下图,则说明安装成功。
4. 修改gitlab配置文件,指定服务器ip和自定义端口:
输入命令编辑配置文件:vim /etc/gitlab/gitlab.rb
#修改访问URL #格式:external_url 'http://ip:端口' external_url 'http://192.168.80.128:8081' #配置时区(可以不用配置) gitlab_rails['time_zone'] = 'Asia/Shanghai'
ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口
配置完以后还需要修改一处,去掉unicorn['port']=8080
前面的注释#,并修改下端口号,注意和上面端口区分开。
如上, 默认端口是8080, 一般都会被占用, 所以修改为自己需要的端口;
进入编辑器后按“i”键进入编辑状态,编辑后按Esc键退出编辑状态,并输入命令:wq保存,或输入:wq! 强制保存。
5. 防火墙开放端口
# 开放上面配置的external_url中的 8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
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. 访问Gitlab页面
如果没有域名,直接输入服务器ip和指定端口进行访问
初始管理员账户: root
注:首次访问时,会自动进入管理员密码设置页面,重新设置下密码,管理员默认账户为root
登录后可进行语言设置:
Settings -> Preferences -> Localization -> Language -> 简体中文
11. 502错误
如果确定上面配置步骤没问题,但是访问GitLab还报502错误,这是虚拟机内存不够导致的,首先保证Gitlab可用运行内存大于4G,端口未被占用,否则跑不起来
12. 添加用户
当管理员在Gitlab新建用户后,系统会自动发送邮件到用户邮箱,用户通过点击邮件链接可自己配置密码;
ps: 创建用户后,用户将收到邮件,邮件可能被拉黑,请到垃圾邮箱中查阅;
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