本文档只适用于Centos7中安装gitlab,其他linux系统安装方式点击这里
一.安装
1. 安装和配置必需的依赖项
第一步.系统防火墙打开HTTP访问和SSH访问
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
第二步.安装postfix邮件服务器,如果想使用其他的解决方案来发送电子邮件,请跳过这一步,配置其他的SMTP服务器后再安装Gitlab
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
启动postfix时有可能提出如下错误
解决方法:
修改/etc/postfix/main.cf配置
inet_protocols = ipv4
inet_interfaces = all
2.开始安装Gitlab
第一步.添加Gitlab安装包
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
第二步.安装Gitlab包,更改http://gitlab.example.com为你实际的访问URL
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
3.访问http://gitlab.example.com,检查是否安装成功
在第一次访问时,您将被重定向到一个密码重置屏幕,默认登录账号为:root
二.Gitlab启动、停止和重启
# 启动gitlab所有组件
sudo gitlab-ctl start
# 停止gitlab所有组件
sudo gitlab-ctl stop
# 重启gitlab所有组件
sudo gitlab-ctl restart
# 查看gitlab状态
sudo gitlab-ctl status
三.Gitlab服务器迁移
注意事项:两台gitlab服务的版本必须保持一致,否则导入数据时会提示版本不兼容问题,如下图
第一步:备份原服务器上的代码,执行以下命令
gitlab-rake gitlab:backup:create RAILS_ENV=production
PS: 备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1481529483_gitlab_backup.tar
第二步:将第一步生成的tar文件拷贝到新服务器上相应的backups目录下
可以利用scp命令或其他方式进行拷贝,scp命令拷贝如下
scp 用户名@服务器IP:/var/opt/gitlab/backups/1481529483_gitlab_backup.tar /var/opt/gitlab/backups
第三步:数据恢复,执行命令
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1481529483
PS:BACKUP的时间点必须与原服务器备份后的文件名一致,此过程如果tar包文件越大,耗时越长,执行过程中有次确认,输入yes即可。
第四步:错误解决(如果可以正常访问可以忽略)
错误描述:页面可以正常访问,点击具体某一个项目是页面提示500错误
解决办法:
1.
覆盖原来gitlab的 db_key_base 到新的gitlab ,db_key_base 位置在 /etc/gitlab/gitlab-secrets.json
2.执行以下命令
EE版执行:
sudo gitlab-rails runner "Project.where(mirror: false).where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
CE版执行:sudo gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
3.重启gitlab,执行:gitlab-ctl restart