http://www.tuicool.com/articles/umQbaee


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

部署环境

安装依赖软件

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

配置gitlab yum源

vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-cebaseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0gpgcheck=0enabled=1gpgkey=https://packages.gitlab.com/gpg.key

安装gitlab-ce

yum -y install gitlab-ce

配置gitlab-ce

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的IPgitlab_rails['gitlab_email_enabled'] = truegitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.mxhichina.com"gitlab_rails['smtp_port'] = 25gitlab_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'] = truegitlab_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备份时间,秒为单位# 这里的邮箱配置需要替换为自己的

载入配置并启动服务

gitlab-ctl reconfigure
gitlab-ctl start

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

备份相关

备份

在 gitlab.rb 配置中开启gitlab备份即可,但是有一个gitlab密钥文件。

这个密钥包含了数据库加密密钥和密钥变量。如果不能恢复这个文件,那么用户的密码就无法访问gitlab服务器,打开项目会报http 500错误。

所以需要额外写一个脚本来备份gitlab-secrets.json文件

#!/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.根据备份文件的编号执行如下命令即可

gitlab-rake gitlab:backup:restore BACKUP=1470648720

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

3.重启gitlab服务

gitlab-ctl restart