最近公司打算将内部使用的gitab 7.14.3升级到最新的gitlab的 Omnibus CE版本。但是由于内部使用的gitlab是源码安装的,使用的是外部数据库mysql5.6。

  所以升级的方案是:

  1.将源码安装的gitlab的数据迁移到Omnibus CE gitlab 7.14.3的版本

  2.将Omnibus CE gitlab安装的7.14.3直接在线升级


  所以前置条件就是:

  1.在新的服务器上面安装好Omnibus CE gitlab 7.14.3

   系统版本:CentOS 7.14.3


这篇文章主要描述的是gitlab Omnibus CE版本的安装和更改配置所遇到的问题描述信息

1.安装配置依赖包:

yum install curl policycoreutils openssh-server openssh-clients

2.下载gitlab的rpm包

 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-7.14.3-ce.1.el7.x86_64.rpm

3.安装gitlab

  yum localinstall gitlab-ce-7.14.3-ce.1.el7.x86_64.rpm

4.gitlab的配置项

  gitlab的默认配置文件信息

  /opt/gitlab

  gitlab的主配置文件

  /ect/gitlab/gitlab.rb

  因为公司内部默认的数据文件是放在/home下面的,并且根目录只有20G,所以将gitlab的git的仓库和backup路径做了更改。

  vi /etc/gitlab/gitlab.rb 

  # git_data_dir "/var/opt/gitlab/git-data" 默认设置

  git_data_dir "/home/gitlab/git-data" git仓库更改之后的设置


  # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" 默认设置

  gitlab_rails['backup_path'] = "/home/gitlab/backups" backup更改之后的设置


5.启动gitlab和拉取静态文件

  gitlab-ctl reconfigure 这个命令会拉去静态文件信息并且启动gitlab

  更改主配置文件 /etc/gitlab/gitlab.rb之重启执行

    gitlab-ctl reconfigure

6.环境和启动检测

  gitlab-rake gitlab:check

7.更改Administrator的登陆密码

  gitlab-rails console production

  irb(main):001:0>user = User.find_by(email:'admin@example.com')

  irb(main):002:0>user.password='newpassword'

  irb(main):001:0>user.save!



问题总结

  1.直接将/var/opt/gitlab移动到/home下面,然后做个软链接。执行步骤:

    a.mv /var/opt/gitlab /home/

    b.ln -fs /home/gitlab /var/opt/gitlab

    c.gitlab-ctl restart

      问题1:redis重启失败,一直提示timeout,并且在/var/log/gitlab/redis/current日志里面     可以看得到提示.rdb找不到,就是redis的存储文件找不到。

      解决:在执行a步骤之前应该停止gitlab服务,执行gitlab-ctl stop之后在依次执行a,b,c

  

  问题2:软连接设置成功之后,在web界面新建项目,在项目中手动添加README.md文件,提示如下错误:

    Your changes could not be committed, because file has been changed

  这个原因是因为git必须使用绝对路径才能正确提交更改代码,使用软连接push是失败的,所以在更改gitlab的仓库目录和备份目录用软连接的办法是行不通的。


  2.在1的基础上,删除软连接,在配置文件更改git_data_dir参数,即git仓库。执行步骤:

    a.gitlab-ctl stop

    b.rm /var/opt/gitlab

    c.mv /home/gitlab /var/opt/gitlab

    d.vi /etc/gitlab/gitlab.rb     

       # git_data_dir "/var/opt/gitlab/git-data" 默认设置

       git_data_dir "/home/gitlab/git-data" git仓库更改之后的设置


       # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" 默认设置

       gitlab_rails['backup_path'] = "/home/gitlab/backups" backup更改之后的设置

    e.gitlab-ctl reconfigure

    f.gitlab-rake gitlab:check

  问题1:在web界面新建项目,在项目中手动添加README.md文件,提示如下错误:

    Your changes could not be committed, because file has been changed

  解决:这个问题的主要原因是因为在1的基础上面,我已经在web界面手动创建了README.md文件,虽然这个文件没有提交到git仓库里面,但是这个文件已经保存在gitlab的临时文件夹里面了。所有在创建的文件的时候会照成冲突。

  解决步骤:

  rm /home/gitlab/git-data/gitlab-satellites -rf

  gitlab-ctl reconfigure


  3.gitlab-rake gitlab:check的时候PG提示找不到role gitlab

  这个主要是因为第一次gitlab-ctl reconfigure的时候创建数据库没有成功,需要在执行几次。