最近公司打算将内部使用的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的时候创建数据库没有成功,需要在执行几次。