本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、Linux中gitlab汉化
1.gitlab汉化需要和下载版本一致的汉化包,比如我的为10.0.0在此下载10.0.0的汉化包
https://gitlab.com/xhang/gitlab
选择跟安装版本一样的汉化包,
2.下载完成后上传到服务器然后解压缩
tar -xvf gitlab-v10.0.0-zh.tar.gz
3.解压之后查看版本
cat gitlab-v10.0.0-zh/VERSION
4.对比之前的版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
5.停止服务
gitlab-ctl stop
6.为防止覆盖的时候出现意外,我们需要将原来的版本备份
cp -r /opt/gitlab/embedded/service/gitlab-rails{,.ori}
7.中文版覆盖英文版
cp -rf gitlab-v10.7.0-zh/* /opt/gitlab/embedded/service/gitlab-rails/
执行上面命令时,会产生交互需要每个都确认是否覆盖,此时我们取消提示
方法1:cp前面加\可以取消提示
\cp -rf gitlab-v10.7.0-zh/* /opt/gitlab/embedded/service/gitlab-rails/
方法2:临时取消cp的别名
unaslias cp
cp -rf gitlab-v10.7.0-zh/* /opt/gitlab/embedded/service/gitlab-rails/
方法3:使用管道自动输入yes。
yes|cp -fr gitlab-v10.7.0-zh/* /opt/gitlab/embedded/service/gitlab-rails/
8.遇到的问题:
此报错不用管,因为已经设置root密码,登录过,所以会报错。
9.重新配置gitlab
gitlab-ctl reconfigure
重启启动gitlab
gitlab-ctl restart
刷新页面,就是中文版了。
二、gitlab同服务器数据迁移
一开始没有考虑到把gitlab划分好存储目录,占用系统磁盘,由于gitlab是默认安装的,随着公司代码越来越多,导致gitlab数据目录空间不足,因此需要把数据重新放到其他磁盘
默认情况下gitlab 将仓库数据存储在 /var/opt/gitlab/git-data目录下,仓库存放在子目录repositories里面。 以可以通过修改/etc/gitlab/gitlab.rb的这一行来自定义git-data的父目录
vim /etc/gitlab/gitlab.rb
把注释取消然后指定新的仓库存储位置
git_data_dirs({ "default" => { "path" => "/home/gitlab" } })
注:/home/gitlab是我新挂载的目录,
目标路径和其子路径必须不能为软链接
在没有数据的情况下
//先停止gitlab服务
gitlab-ctl stop
//使修改生效
gitlab-ctl reconfigure
如果 /var/opt/gitlab/git-data 目录已经存在Git仓库数据, 你可以用下面的命令把数据迁移到新的位置:
1.先停止GitLab服务,防止用户写入数据。
gitlab-ctl stop
2.执行迁移命令
rsync -av /var/opt/gitlab/git-data/repositories /home/gitlab
如果需要修复权限设置,可运行下面的命令进行修复
gitlab-ctl reconfigure
再次检查下 /home/gitlab 的目录. 正常情况应该有下面这个子目录: # repositories
ls /home/gitlab
启动GitLab,验证下是否能通过web访问Git仓库。
gitlab-ctl start
3.设置存储仓库数据的备用目录
注意的是:自GitLab 8.10开始,可以通过在/etc/gitlab/gitlab.rb文件中添加下面的几行配置, 来增加多个 git 数据存储目录。
git_data_dirs({
"default" => { "path" => "/var/opt/gitlab/git-data" }, //默认存储目录
"alternative" => { "path" => " /data/git-data" } //备用存储目录 })
我们也可以在开始安装gitlab的时候就修改存储目录,避免后续的迁移
三、gitlab数据迁移到其他服务器
1.备份git服务器数据
gitlab-rake gitlab:backup:create RAILS_ENV=production
注:默认备份后文件一般位于/var/opt/gitlab/backups/,文件名字:
1565163295_2019_08_07_10.0.0_gitlab_backup.tar
2.由高版本的Gitlab无法恢复低版本备份的数据,新服务器上安装与原服务器一样版本的gitlab。
3.将生成的tar文件拷贝到新服务器对应的backups目录下
scp /var/opt/gitlab/backups/1565163295_2019_08_07_10.0.0_gitlab_backup.tar username@ip:/var/opt/gitlab/backups/
如果无法使用scp命令,可以通过xftp把文件上传和下载
4.新GitLab服务数据恢复
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1565163295_2019_08_07_10.0.0
5.重启gitlab服务并检测恢复数据情况
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
6.迁移之后克隆地址修改
vim /etc/gitlab/gitlab.rb