我正在研究将GitLab从旧服务器迁移到新服务器的过程。我需要做的第一件事就是确定GitLab所处的安装(Omnibus与来源),而且我无法分辨。
这篇文章(omnibus or source - can't decide which one to use for gitllab backup/restore)提到在GitLab根文件夹(/ home / git / gitlab)中查找.git文件 - 我在那里看不到.git文件。因此,通过该评论,安装是Omnibus。
但是,看一下这篇文章(Checking of GitLab version),我无法运行:
sudo gitlab-rake gitlab:env:info
(显示为Omnibus安装)
但我可以跑:
bundle exec rake gitlab:env:info RAILS_ENV=production
(显示源安装)
我看到了相互矛盾的答案。我怎么知道GitLab在哪个安装?
在任何情况下,当我运行最后一个命令时,我得到以下结果(如果它有帮助):
系统信息 系统:Debian 7.10 当前用户:git 使用RVM:没有 Ruby版本:2.0.0p247 宝石版本:2.0.3 Bundler版本:1.7.2 耙子版本:10.1.0
GitLab信息 版本:6.0.2 修订版:10b0b8f 目录:/ home / git / gitlab 数据库适配器:mysql2 网址:http://107.178.218.39 HTTP克隆网址:http://107.178.218.39/some-project.git SSH克隆URL:git@107.178.218.39:some-project.git 使用LDAP:没有 使用Omniauth:没有
GitLab Shell 版本:1.7.0 存储库:/ home / git / repositories / 钩子:/ home / git / gitlab-shell / hooks / Git:/ usr / bin / git
答案 0 :(得分:7)
您应该检查此文件是否可用:
/etc/gitlab/gitlab.rb
如果没有,则从源代码安装。我的建议是将您的安装更改为综合安装,这样可以更容易升级。
阅读本文,了解有关升级到综合安装的更多信息:https://docs.gitlab.com/omnibus/update/README.html#upgrading-from-a-non-omnibus-installation-to-an-omnibus-installation
更新1
请注意,如果将MySQL用作数据库,则必须进行转换,请参阅文档https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/mysql_to_postgresql.md
要从源升级安装,您有两个选项:
确保您拥有与当前GitLab版本匹配的omnibus-gitlab软件包。 (如果可能的话,我会从源头最后一次升级)
<强> 1。在同一台服务器上安装带有omnibus的gitlab。
开始之前,请从服务器创建快照,以确保始终可以返回工作点。还要确保关闭gitlab。
您应该使用omnibus选项安装gitlab:
sudo apt-get install curl openssh-server ca-certificates postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce
可以在服务器上同时安装源安装的omnibus。如果出现问题,您可以随时更改源安装。
然后按照文档中的说明进行操作:https://docs.gitlab.com/omnibus/update/README.html#upgrading-from-non-omnibus-postgresql-to-an-omnibus-installation-in-place
<强> 2。通过备份安装gitlab。
使用备份时,您甚至可以将gitlab安装转移到新服务器。我用这种方式,很容易。
在进行备份之前,请关闭gitlab,以确保备份和还原过程之间没有任何变化
首先,进行备份:
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
另请参阅documenation此覆盖范围以了解更多信息。
之后,您可以将备份移动到新的gitlab服务器或稍后使用它来导入它。
要在omnibus安装中导入它(简而言之,请阅读documentation):
sudo cp 1393513186_gitlab_backup.tar /var/opt/gitlab/backups/
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# Verify
sudo gitlab-ctl status
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186
sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true
因为你说它是关于一个现场环境。您可以执行以下操作,设置一个小型服务器/或在本地计算机上进行升级过程,以便您对此感到满意。之后你可以在现场环境中做同样的事情。