GitLab一个开源的git仓库管理平台,方便团队协作开发、管理。
准备工作
安装基础依赖
1 | # 安装基础依赖 |
安装Postfix
Postfix是一个邮件服务器,GitLab发送邮件需要用到
1 | #安装postfix |
- 报
Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.
错误, 解决办法:
1 | # 修改 /etc/postfix/main.cf 的设置 |
开放ssh以及http服务(80端口)
1 | #开放ssh、http服务 |
- 报
FirewallD is not running
, 解决办法:
1 | sudo systemctl start firewalld |
部署过程
本次我们部署的是社区版:gitlab-ce
,如果要部署商业版可以把关键字替换为:gitlab-ee
Yum安装GitLab
- 添加GitLab社区版Package
1 | curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash |
- 安装GitLab社区版
1 | sudo yum install -y gitlab-ce |
安装成功后会看到gitlab-ce打印了以下图形
1 |
|
配置GitLab站点Url
GitLab默认的配置文件路径是/etc/gitlab/gitlab.rb
默认的站点Url配置项是:
1 | external_url 'http://gitlab.example.com' |
1 | #修改配置文件 |
- 防火墙开启端口
1 | [root@caoxl init.d]# firewall-cmd --add-port=9999/tcp --permanent |
启动并访问Gitlab
- 启动Gitlab
1 | #重新配置并启动 |
- 访问Gitlab
将设置的域名DNS解析到服务器IP,或者修改本地host将域名指向服务器IP。访问:http://gitlab.caoxl.com
这时候会提示为管理员账号设置密码。管理员账号默认username是root
。
设置完成之后即可使用root
账号登录,登陆后会进入欢迎界面。
- 报
ruby_block[authorize Grafana with GitLab] action run
,解决办法
1 | # vim /etc/gitlab/gitlab.rb |
- 报
Whoops, GitLab is taking too much time to respond. (502)错误
, 解决办法
原因是端口被其他服务占用了,需要更换配置文件里得到端口 ,并且执行gitlab-ctl reconfigure
, gitlab-ctl restart
就可以解决
GitLab常用配置
邮件配置
配置邮箱可以让GitLab在发生相应事件的时候进行邮件通知
比如:找回密码、添加邮箱等
1 | #修改配置文件 |
禁用创建组权限
GitLab默认所有的注册用户都可以创建组。但对于团队来说,通常只会给Leader相关权限。
虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置GitLab默认禁用创建组权限。
1 | #修改配置文件 |
gitlab-ctl常用命令介绍
1 | sudo gitlab-ctl cmd |
命令 | 说明 |
---|---|
check-config |
检查在gitlab中是否有任何配置。在指定版本中删除的rb |
deploy-page |
安装部署页面 |
diff-config |
将用户配置与包可用配置进行比较 |
remove-accounts |
删除所有用户和组 |
upgrade |
升级 |
once |
如果GitLab服务停止了就启动服务,如果已启动就不做任何操作 |
restart |
重启GitLab服务 |
start |
如果GitLab服务停止了就启动服务,如果已启动就重启服务 |
stop |
停止GitLab服务 |
status |
查看GitLab服务状态 |
reconfigure |
reconfigure重新配置GitLab并启动 |
解决Gitlab的Nginx以及自带Nginx冲突问题
vim /etc/gitlab/gitlab.rb
做以下修改:
1 | // 禁用Gitlab的nginx |
说明
1 | cat /usr/local/nginx/conf/nginx.conf | grep user |
- 配置Nginx, 新增
gitlab.conf
1 | upstream gitlab-workhorse { |
- 重启Nginx:
sudo service nginx restart
解决Gitlab访问502问题
1 | sudo chmod -R o+x /opt/gitlab/embedded/service//gitlab-rails/ |