GitLab 9.2.6 安装及汉化

kionf

GitLab 官方新版(9.2.6)安装及汉化

0x00 安装GitLab

测试主机: CentOS Linux release 7.3.1611 (Core)
其它系统参考: GitLab安装

安装和配置必要的依赖关系

1
2
3
4
5
6
7
8
9
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

添加GitLab服务包并安装

1
2
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

配置并启动GitLab

1
2
3
4
5
6
vim +13 /etc/gitlab/gitlab.rb
# 修改external_url 'http://172.16.0.123'为内网ip或绑定的域名
# 此处的地址生效在项目url地址处
sudo gitlab-ctl reconfigure
# 启动服务

查看

1
2
3
4
5
6
7
8
9
10
11
12
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 25658/node_exporter
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 25718/unicorn maste
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 25650/nginx: master
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 25631/ruby
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1439/master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 25650/nginx: master
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 25692/redis_exporte
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 25678/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 25664/postgres_expo
tcp6 0 0 ::1:9168 :::* LISTEN 25631/ruby
tcp6 0 0 ::1:25 :::* LISTEN 1439/master

访问 http://172.16.0.123 初始化密码 默认用户名为 root

0x01 汉化

查看当前GitLab版本

1
2
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 9.2.6

clone汉化代码

1
2
3
4
5
6
7
mkdir -p /opt/gitlab-zh
cd /opt/gitlab-zh
yum -y install git
git clone https://gitlab.com/xhang/gitlab.git

比较汉化分支和原分支导出文件

1
2
3
4
5
6
cd gitlab
git diff origin/9-2-stable 9-2-stable-zh > /opt/gitlab-zh/9.2.diff
# 此处是9.2.6版本 其他版本只需更改数字 例如为9.1 :
# git diff origin/9-1-stable 9-1-stable-zh > /opt/gitlab-zh/9.1.diff

打补丁(9.2.diff)

1
2
3
4
5
6
7
8
9
10
11
cd /opt/gitlab-zh
yum -y install patch
gitlab-ctl stop
#停止gitlab
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /opt/gitlab-zh/9.2.diff
gotlab-ctl start
#启动gitlab

0x02 管理运维

管理

1
2
3
4
5
6
7
8
9
10
11
# 启动所有 gitlab 组件:
sudo gitlab-ctl start
# 停止所有 gitlab 组件:
sudo gitlab-ctl stop
# 重启所有 gitlab 组件:
sudo gitlab-ctl restart
# 更新配置并重启
sudo gitlab-ctl reconfigure

备份恢复

备份 crontab 中添加

1
0 1 * * * /usr/bin/gitlab-rake gitlab:backup:create

恢复

首先进入备份 gitlab 的目录,这个目录是配置文件中的gitlab_rails['backup_path'],默认为/var/opt/gitlab/backups

然后停止 unicorn 和 sidekiq ,保证数据库没有新的连接,不会有写数据情况。

1
2
3
4
5
sudo gitlab-ctl stop unicorn
# ok: down: unicorn: 0s, normally up
sudo gitlab-ctl stop sidekiq
# ok: down: sidekiq: 0s, normally up

然后恢复数据,1498033332为备份文件的时间戳

1
2
3
4
ls /var/opt/gitlab/backups
#1498033332_2017_06_21_9.2.6_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1498033332

数据储存

默认情况下,gitlab 将数据存储在/var/opt/gitlab/git-data目录下,受限于分区情况&方便管理,我们可以将数据迁移到别的目录下。

没有投入使用可直接更改

1
2
3
4
5
6
7
vim /etc/gitlab/gitlab.rb
#添加
git_data_dir "/path/to/git-data"
# 更新配置并重启
sudo gitlab-ctl reconfigure

数据迁移

首先需要暂停服务,避免用户在迁移期间读写数据:

1
2
3
4
5
6
7
gitlab-ctl stop
rsync -av /var/opt/gitlab/git-data/repositories /path/to/git-data/
sudo gitlab-ctl start
sudo gitlab-ctl reconfigure