如您需要技术咨询、解决方案定制、故障排除、运维监控等服务,可联系ericwcn#at#163.com。

Gitlab 9 安装配置与备份还原

运维 立杰 277℃ 0评论

Gitlab官方目前支持集成的安装包(Omnibus package)已将部署,在发行的二进制的安装包中已将包含了Nginx,Redis,PostgreSQL,Sidekiq,Unicorn等应用程序,日后管理维护、升级都非常方便。由于国外官方源因网络问题经常出现访问中断的现象,可以使用清华大学的镜像来进行部署。配置方法参考:https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/

本文将主要介绍从gitlab 8.1.4 升级到gitlab 9的详细方法和步骤。

安装

首先信任 GitLab 的 GPG 公钥:

#Ubuntu/Debian
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
#Ubuntu 14.04 LTS
echo "deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu trusty main" > /etc/apt/sources.list.d/gitlab-ce.list
sudo apt-get install gitlab-ce -y

修改/etc/gitlab.rb配置文件,根据需要修改相应参数后,重新配置gitlab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

备份gitlab

Omnibus package
Gitlab Omnibus方式安装所有的配置文件存储在/etc/gitlab,应用程序存储在/opt/gitlab,相关数据默认存储在/var/opt/gitlab目录下,日志放在/var/log/gitlab。
备份Gitlab配置文件
我们可以通过crontab定时进行备份,具体如下:

sudo crontab -e -u root
15 04 * * 2-6  umask 0077; tar -cfz /backup/gitlab/backups/$(date "+etc-gitlab-\%s.tgz") -C / etc/gitlab

备份应用程序数据

#Omnibus package
sudo gitlab-rake gitlab:backup:create
#source install
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
#docker container
docker exec -t  gitlab-rake gitlab:backup:create
#bitnami install
bash /opt/gitlab-8.1.4-1/use_gitlab
cd /opt/gitlab-8.1.4-1/apps/gitlab/htdocs
sudo su git
bundle exec rake gitlab:backup:create RAILS_ENV=production

还原Gitlab

将备份文件复制到Gitlab备份目录,默认为/var/opt/gitlab/backups,我们这里是/data/gitlab/backup:

sudo cp 1493107454_2017_04_25_9.1.0_gitlab_backup.tar /data/gitlab/backups/

停止连接数据库的程序,让其他Gitlab服务正常运行:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# Verify
sudo gitlab-ctl status

接下来还原备份,指定要还原的备份文件时间戳,注意这会重写Gitlab数据库。

sudo gitlab-rake gitlab:backup:restore BACKUP=1493107454_2017_04_25_9.1.0

重新启动Gitlab服务,并进行检查。

sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true

Gitlab升级

如果使用集成包安装,这可以直接安装最新版本的Omnibus package即可,安装程序会自动升级。强烈建议升级前对Gitlab进行备份。

sudo apt-get upgrade gitlab-ce

或者 dpkg -i gitlab-ce_9.2.6-ce.0_amd64.deb

如果是源码安装或其他第三方发行版本安装,建议先迁移到相同版本的Gitlab Omnibus package,然后在进行升级。
完整备份原来的Gitlab数据和应用程序,SSH等文件。具体请参考上文。
安装与原Gitlab版本完全一致的Omnibus发行版本(如:8.1.4)。
修改新安装的gitlab配置文件/etc/gitlab/gitlab.rb,根据你的需要修改。
将原版备份的文件复制到新版的备份目录进行还原。

例如:将Bitnami Gitlab迁移到Omnibus并升级到最新版本

1.备份Bitnami Gitlab应用程序数据

bash /opt/gitlab-8.1.4-1/use_gitlab
cd /opt/gitlab-8.1.4-1/apps/gitlab/htdocs
sudo su git
bundle exec rake gitlab:backup:create RAILS_ENV=production
mkdir /home/gitlab/backup/`date +%F`
exit
mv tmp/backups/1498185988_gitlab_backup.tar /home/gitlab/backup/2017-06-23/

2.完整备份Bitnami Gitlab和系统数据

tar -czvf /data/backup/gitlab/bitnami.gitlab.8.1.4-1.`date +%F.%H%M%S`.tar.gz /data/gitlab
tar -czvf /data/backup/passwd.group.shadows.`date +%F.%H%M%S`.tar.gz /etc/passwd* /etc/group* /etc/shadow*
tar -czvf /data/backup/home_git.`date +%F.%H%M%S`.tar.gz /home/git

3.安装与原Gitlab版本完全一致的Omnibus发行版本

dpkg-i /data/software/gitlab/gitlab-ce_8.1.4-ce.0_amd64.deb 
gitlab-ctl reconfigure

4.修改新安装的gitlab配置文件/etc/gitlab/gitlab.rb,根据你的需要修改。

5.将原版备份的文件复制到新版的备份目录进行还原。

注意:
(1).Gitlab 9.2开始时间戳格式将从EPOCH_YYYY_MM_DD 修改成 EPOCH_YYYY_MM_DD_GitLab version,例如:1493107454_2017_04_25 改成 1493107454_2017_04_25_9.2.0
(2).还原安全秘钥,/etc/gitlab/gitlab-secrets.json (for Omnibus packages) 或 /home/git/gitlab/.secret (source).
cp /home/gitlab/backup/2017-06-23/1498185988_gitlab_backup.tar /data/gitlab/backups/
chown git. -R /data/gitlab/backups/
停止连接数据库的程序,让其他Gitlab服务正常运行:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# Verify
sudo gitlab-ctl status

接下来还原备份,指定要还原的备份文件时间戳,注意这会重写Gitlab数据库。

sudo gitlab-rake gitlab:backup:restore BACKUP=1493107454_2017_04_25_9.1.0

重新启动Gitlab服务,并进行检查。

sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true

6.升级Gitlab到最新版本

sudo gitlab-rake gitlab:backup:create
sudo tar -czvf /data/backup/gitlab/`date +%F`
dpkg -i  /data/software/gitlab/gitlab-ce_9.2.6-ce.0_amd64.deb
sudo gitlab-rake gitlab:check SANITIZE=true

 

参考地址:
Omnibus GitLab文档: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Gitlab备份还原: https://docs.gitlab.com/ce/raketasks/backup_restore.html
Gitlab升级: http://docs.gitlab.com/omnibus/update/README.html
https://docs.gitlab.com/omnibus/update/README.html#upgrading-from-a-non-omnibus-installation-to-an-omnibus-installation
https://docs.bitnami.com/installer/apps/gitlab-legacy/#upgrade-process-for-gitlab-8x
https://docs.gitlab.com/omnibus/update/README.html#updating-gitlab-via-omnibus-gitlab

change list
https://about.gitlab.com/release-list/

转载请注明:知识库 » Gitlab 9 安装配置与备份还原

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址