GitLab维护指南

作者: 小可哥哥V | 来源:发表于2019-04-14 20:49 被阅读0次

    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
    

    配置生效启动服务:

    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'] = "xxuser@163.com"
    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'] = "xxuser@163.com"
    user["git_user_email"] = "xxuser@163.com"
    

    重置配置:

    sudo gitlab-ctl reconfigure
    

    如有问题可以查看日志:

    gitlab-ctl tail
    

    使用gitlab-rails console测试邮件功能:

    username@hostname$ gitlab-rails console
    
    username@hostname$ Notify.test_email('xxxxx@xxx.com','Message Subject','message Body').deliver_now
    

    参考文章:

    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

    相关文章

      网友评论

        本文标题:GitLab维护指南

        本文链接:https://www.haomeiwen.com/subject/sjxewqtx.html