根据生产需求需要
准备将gitlab-ce.x86_64 0:10.2.2-ce.0.el6
升级至gitlab-ce.x86_64 0:10.7.3-ce.0.el6
备注:一些基本可能用的信息
Gitlab 的yum安装配置备份环境的准备工作
我的系统是centos6.8的系统,先配置yum源:
https://mirror.tuna.tsinghua.edu.cn/help/epel/ 这里写的配置epel源比较详细我就不写了,写下gitlab的源的内容:
此步骤如果之前有添加,可忽略直接跳过,直接安装更新信息。如果使用命令更新,此步骤可以忽略
- 新建 vim /etc/yum.repos.d/gitlab-ce.repo,添加以下内容:
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
如果是7就把baseurl换成这个地址就行其他都一样的:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
https://about.gitlab.com/downloads/#centos7 官方的7安装方式 可以选择系统版本查看
添加访问的ip或者域名,修改/etc/gitlab/gitlab.rb的external_url
每次修改/etc/gitlab/gitlab.rb,都要运行gitlab-ctl reconfigure 命令,让配置生效
升级流程开始
登录服务器并停止gitlab服务
1.关闭gitlab服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
备份数据(备份以防不测)
gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1512021935_2017_11_30_10.2.2_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中1512021935_2017_11_30是备份创建的日期10.2.2_gitlab是gitlab的版本
配置文件备份
/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 邮件配置备份
/var/opt/gitlab/backups 默认备份目录
/var/opt/gitlab/gitlab-rails/uploads/ 上传的项目图片等
/opt/gitlab/embedded/service/gitlab-rails/public/uploads软连接到
2.开始升级,
更新安装信息
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
安装升级制定版本
sudo yum install gitlab-ce-10.7.2-ce.0.el6.x86_64
如果报错,删除yum gitlab仓库 重新执行上一步
yum update gitlab-ce (升级最新版本) sudo yum install gitlab-ce-10.7.2-ce.0.el6.x86_64(升级到指定版本)
方法二 上官网下载最新版本 gitlab对应软件包 gitlab安装包官网
rpm安装
rpm -Uvh gitlab-ce-10.7.2-ce.0.el6.x86_64
升级如图
3升级完毕,开启服务
gitlab-ctl reconfigure #重新加载配置
gitlab-ctl start #启动服务
head -1 /opt/gitlab/version-manifest.txt 查看gitlab 版本信息
如果无需汉化 到这里升级已经结束!
如果需要汉化
获取gitlab汉化包
说明:gitlab中文社区版的项目,v7-v8.8是由Larry Li发起的“GitLab 中文社区版项目”(https://gitlab.com/larryli/gitlab),从 v8.9 之后,@xhang 开始继续该汉化项目(https://gitlab.com/xhang/gitlab)。
汉化方法1
安装git
yum install -y git
克隆汉化版本库
git clone https://gitlab.com/xhang/gitlab.git
如果是要下载老版本的汉化包,需要加上老版本的分支,比如今天已经是10.0.4,我依旧想下载10.0.2,可以运行下面的语句
git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh
如果已经克隆过,则进行更新
cd gitlab
git fetch
添加获取当前版本变量
gitlab_version=$(sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION)
生成版本的汉化补丁
停止gitlab服务
gitlab-ctl stop
切换到gitlab汉化包所在的目录(即步骤二获取的汉化版gitlab)
cd /root/gitlab
git diff v${gitlab_version} v${gitlab_version}-zh > ../${gitlab_version}-zh.diff
(如果上面没获取版本号 手动替换修改${gitlab_version}=你的版本)
cd ../
导入汉化补丁
yum -y install patch
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ${gitlab_version}-zh.diff
gitlab-ctl start
汉化完成!!!!
汉化方式2
如果你没有克隆汉化包,而是从其他地方得到类似于10.7.2-zh.diff 文件
将文件上传至/root 目录
gitlab-ctl stop 停止gitlab服务
将10.7.2-zh.diff作为补丁更新到gitlab中
yum install patch -y
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.7.2-zh.diff
gitlab-ctl start # 启动gitlab
gitlab-ctl reconfigure #重新加载配置gitlab
汉化完成
配置邮件 有需求可以看看
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "onewserverdc.onewtech.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "passwd"
gitlab_rails['smtp_domain'] = "onewtech.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "[email protected]"
user["git_user_email"] = "[email protected]"
命令参考
sed -i "423 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "424 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "424 s/smtp.server/onewserver.onewtech.com/g" /etc/gitlab/gitlab.rb
sed -i "425 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "425 s/465/25/g" /etc/gitlab/gitlab.rb
sed -i "426 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "426 s/smtp user/[email protected]/g" /etc/gitlab/gitlab.rb
sed -i "427 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "427 s/smtp password/******/g" /etc/gitlab/gitlab.rb
sed -i "428 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "428 s/example.com/onewtech.com/g" /etc/gitlab/gitlab.rb
sed -i "429 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "430 s/^# gitlab/gitlab/g" /etc/gitlab/gitlab.rb
sed -i "430a gitlab_rails['gitlab_email_from'] = \"[email protected]\"" /etc/gitlab/gitlab.rb
sed -i '431a user["git_user_email"] = \"[email protected]\"' /etc/gitlab/gitlab.rb
修改仓库路径
git_data_dirs({ "default" => { "path" => "/data/gitlab-data" } })
管理命令
gitlab-ctl stop # 停止服务
gitlab-ctl start # 启动服务
gitlab-ctl status # 查看服务状态
gitlab-ctl reconfigure # 根据/etc/gitlab/gitlab.rd文件初始化
可参考资料
entos 7-gitlab
部署汉化:
http://www.cnblogs.com/straycats/p/7637373.html
升级:
http://www.cnblogs.com/straycats/p/7707359.html
本地备份:
http://www.cnblogs.com/straycats/p/7671204.html
远程备份:
http://www.cnblogs.com/straycats/p/7672692.html
迁移/恢复:
http://www.cnblogs.com/straycats/p/7702271.html
汉化地址:
https://gitlab.com/xhang/gitlab/tags
清华镜像站:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/