搭建内网gitlab仓库

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

部署环境


安装依赖软件

1
2
3
yum -y install curl policycoreutils openssh-server openssh-clients postfix
systemctl enable postfix
systemctl start postfix


配置gitlab yum源

1
2
3
4
5
6
7
8
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key


安装gitlab-ce


1
yum -y install gitlab-ce


配置gitlab-ce

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
grep -v "#" /etc/gitlab/gitlab.rb | grep -v "^$"
external_url 'http://42.159.144.159:9000'
unicorn['port'] = 9001
# 定义gitlab监听的端口
unicorn['listen'] = '0.0.0.0'
# 定义gitlab的IP
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "test@test.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "smtp.mxhichina.com"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "test@test.com"
user['git_user_email'] = "test@test.com"
gitlab_rails['manage_backup_path'] = true
# 启用gitlab备份功能
gitlab_rails['backup_path'] = "/data/gitlab_backup"
# gitlab的备份
gitlab_rails['backup_keep_time'] = 2592000
# gitlab备份时间,秒为单位
# 这里的邮箱配置需要替换为自己的


载入配置并启动服务

1
2
gitlab-ctl reconfigure
gitlab-ctl start


启动完毕之后访问之前配置的IP+port即可,首次访问需设置root用户密码。

备份相关

备份

在 gitlab.rb 配置中开启gitlab备份即可,但是有一个gitlab密钥文件。
这个密钥包含了数据库加密密钥和密钥变量。如果不能恢复这个文件,那么用户的密码就无法访问gitlab服务器,打开项目会报http 500错误。
所以需要额外写一个脚本来备份gitlab-secrets.json文件
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
# gitlab 备份脚本
JSON_DIR='/data/gitlab_backup_json'
# gitlab命令备份
/bin/gitlab-rake gitlab:backup:create
# 备份配置在 /etc/gitlab/gitlab.rb 文件中配置
#备份 json,否则可能在恢复的时候导致用户密码错误问题
mkdir $JSON_DIR/`date +%F`
cp /etc/gitlab/gitlab-secrets.json $JSON_DIR/`date +%F`

之后加入crontab任务即可实现每天备份

恢复

恢复备份操作如下
1.根据备份文件的编号执行如下命令即可
1
gitlab-rake gitlab:backup:restore BACKUP=1470648720

2.复制gitlab-secrets.json文件到/etc/gitlab/gitlab-secrets.json目录,不然打开gitlab项目会报500错误
3.重启gitlab服务

1
gitlab-ctl restart

火柴 wechat
扫描上方二维码关注我的博客!
0%