- GitLab安装和升级
- 服务器迁移
- 修改服务端口号
- 修改HTTP连接方式中的IP和端口
- 邮件通知功能设置
- 常见问题
GitLab安装和升级
1.gitlab-ce安装
这里使用的环境是Ubantu 16.04 LTS,注意gitlab-ce 镜像仅支持 x86-64 架构
。我们使用的清华大学开源软件镜像站提供的版本,国内站点速度很快。
首先信任 GitLab 的 GPG 公钥:
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
把软件源配置写进 /etc/apt/sources.list.d/gitlab-ce.list
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
安装 gitlab-ce:
sudo apt-get update
sudo apt-get install gitlab-ce
如果是centOS,那么信任软件源需要新建 /etc/yum.repos.d/gitlab-ce.repo,内容为:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
然后进行安装:
sudo yum makecache
sudo yum install gitlab-ce
如果需要指定版本安装:
# 查看可用版本
yum list gitlab-ce --showduplicates| sort -r
# 安装指定版本
yum -y install docker-ce-17.06.0.ce
配置生效启动服务:
gitlab-ctl reconfigure
gitlab-ctl restart
2.版本升级
升级需要先关闭部分服务:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
升级命令与安装命令相同
sudo apt-get update
sudo apt-get install gitlab-ce
然后重置配置和服务重启
gitlab-ctl reconfigure
gitlab-ctl restart
服务器迁移
1.备份数据
首先备份原GIT服务器数据
gitlab-rake gitlab:backup:create RAILS_ENV=production
注:默认备份后文件一般位于/var/opt/gitlab/backups/,文件名类似:1513578325_2017_12_18_gitlab_backup.tar
然后备份配置文件:
/etc/gitlab/gitlab.rb #配置文件须备份
/var/opt/gitlab/nginx/conf #nginx配置文件
/etc/postfix/main.cfpostfix #邮件配置备份
2.复制备份文件到新服务器
使用远程拷贝命令复制文件到新的服务器
scp /var/opt/gitlab/backups/1513578325_2017_12_18_gitlab_backup.tar username@src_ip:/var/opt/gitlab/backups
3.新GitLab服务数据恢复
注意:需要保证新服务器的版本与旧服务器一致
查询版本:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
执行命令进行数据恢复:
#cd /var/opt/gitlab/backups
#gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
#gitlab-rake gitlab:backup:restore BACKUP=1502357536_2019_04_14_11.9.8
注:BACKUP的时间点必须与原服务器备份后的文件名一致
4.重启服务检测数据恢复情况
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
如果check命令出现错误,说明备份的GitLab服务和新的GitLab服务版本不匹配,请安装正确的版本
修改服务端口号
修改nginx端口:
sudo vi /etc/gitlab/gitlab.rb
nginx['listen_port'] = 8081
sudo vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
listen *:8081;
修改unicorn端口:
sudo vi /etc/gitlab/gitlab.rb
unicorn['port'] = 3648
sudo vi /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:3648", :tcp_nopush => true
保存配置,重启:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-ctl status
修改默认端口号后出现502问题恢复,可能是权限问题,尝试以下命令来解决:
# chmod -R 777 /var/log/gitlab
# gitlab-ctl tail unicorn
修改HTTP连接方式中的IP和端口
修改gitlab.yml文件
cd /opt/gitlab/embedded/service/gitlab-rails/config
vim gitlab.yml
修改host和port
host:要修改的IP
port:要修改的端口
重启gitlab
gitlab-ctl restart
邮件通知功能设置
为邮件通知功能配置smtp服务和发件邮箱:
vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.ym.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "xxpassword"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "[email protected]"
user["git_user_email"] = "[email protected]"
重置配置:
sudo gitlab-ctl reconfigure
如有问题可以查看日志:
gitlab-ctl tail
使用gitlab-rails console测试邮件功能:
username@hostname$ gitlab-rails console
username@hostname$ Notify.test_email('[email protected]','Message Subject','message Body').deliver_now
常见问题
1.页面500问题解决
在升级过后,或者恢复配置之后,对项目进行删除修改等操作会出现失败,报500,这是因为升级造成gitlab数据库中token参数错误,需要重置,方法入下, 对指定id的项目将token设置为null
root@gitserver:/etc/gitlab# sudo gitlab-rails dbconsole
psql (9.6.11)
Type "help" for help.
gitlabhq_production=> UPDATE projects SET runners_token = null, runners_token_encrypted = null WHERE id = 5 ;
UPDATE 1
2.升级500问题错误
前面高兴的太早,访问GitLab发现报500错误,观察log得知大意为DB数据关系错误,需要升级数据库关系
输入以下指令查看数据升级状态
sudo gitlab-rake db:migrate:status
果然发现有一些显示为Down,显示为Up即表示正常同,再执行数据库关系升级
sudo gitlab-rake db:migrate
执行完成再重复重建、重启命令,问题解决
3.配置加载阻塞:
安装过程中执行gitlab-ctl reconfigure,出现长时间卡住的情况:
运行:sudo systemctl restart gitlab-runsvdir;
再次执行:sudo gitlab-ctl reconfigure
4.修改注册权限问题报500:
https://gitlab.com/gitlab-org/gitlab-ce/issues/56403
参考文章:
https://www.cnblogs.com/TechSnail/p/7745459.html
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
https://www.jianshu.com/p/dfcfd5a66b8b
https://blog.csdn.net/liuruiqun/article/details/50000213
https://www.jianshu.com/p/5df942809cea