由于blog各种垃圾评论太多,而且本人审核评论周期较长,所以懒得管理评论了,就把评论功能关闭,有问题可以直接qq骚扰我

企业级git仓库gitlab基于国内源部署

运维工具 西门飞冰 6825℃
[隐藏]

1.Gitlab介绍

Gitlab是一个企业级的git项目仓库,可以通过web界面进行访问公开或者私人项目。Gitlab拥有与github类似的功能,能够浏览代码,管理缺陷和注释,可以管理团队对仓库的访问。

运维平常对gitlab的维护,无非就是部署还有备份,当然最多的就是用户创建,权限设置。还要根据公司环境编写gitlab的使用文档。本文简单介绍下gitlab的部署还有备份还原,为后期的持续集成文章打基础。

2.Gitlab安装

安装环境:centos 7.2 64位

(1)安装gitlab依赖软件

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

(2)配置gitlab安装源(清华大学安装源)

[root@node1 ~]# cat /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

(3)安装gitlab-ce

[root@node1 ~]# yum list | grep gitlab-ce
gitlab-ce.x86_64                        8.13.6-ce.0.el7                gitlab-ce
[root@node1 ~]# yum -y install gitlab-ce

(4)配置并启动gitlab-ce

[root@node1 ~]# gitlab-ctl reconfigure

(5)登录gitlab,首次登录需要设置root密码,密码需要满足复杂度要求

image001

(6)登录成功如下所示

image002

3.Gitlab配置邮件

修改配置文件设置邮件相关配置,我这里使用腾讯企业邮箱来配置,不同的邮箱只需要修改为不同的smtp地址即可。

[root@node2 ~]# grep -v "#" /etc/gitlab/gitlab.rb | grep -v "^$"
external_url 'http://192.168.100.11'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'ximenfeibing@fblinux.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25 
gitlab_rails['smtp_user_name'] = "ximenfeibing@fblinux.com"
gitlab_rails['smtp_password'] = "邮箱登录密码"
gitlab_rails['smtp_domain'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
user['git_user_email'] = ximenfeibing@fblinux.com

重启gitlab服务

[root@node2 ~]# gitlab-ctl reconfigure
[root@node2 ~]# gitlab-ctl restart

接受邮件验证:我们可以在gitlab创建一个用户,创建完成会给用户邮箱发送邮件,让用户设置自己账户的密码,接收邮件信息如下。

image003

 

4.Gitlab备份还原

4.1.Gitlab备份

(1) 修改gitlab配置文件,设置gitlab本地备份存放路径。(非必须)

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/data/gitalb_backup"

重启gitlab服务,生效配置

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

(2)执行如下命令生成gitlab备份

/opt/gitlab/bin/gitlab-rake gitlab:backup:create

每日存放的备份文件如下所示:

[root@gitlab ~]# ll /data/gitalb_backup
总用量 20422980
-rw-------. 1 git git 5212344320 11月 21 02:06 1479664995_gitlab_backup.tar
-rw-------. 1 git git 5223424000 11月 22 02:06 1479751366_gitlab_backup.tar
-rw-------. 1 git git 5238650880 11月 23 02:03 1479837706_gitlab_backup.tar
-rw-------. 1 git git 5238691840 11月 24 02:03 1479924104_gitlab_backup.tar

生产应该每天通过scp或者rsync把备份文件同步到公司的备份服务器。

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

/etc/gitlab/gitlab-secrets.json	  #每天同步到备份服务器即可

4.2.Gitlab还原

(1)在备份服务器上面,找到最近的一次gitlab备份,然后复制到gitlab服务器的本地备份目录下。

(2)根据备份文件的编号执行如下命令环境即可:例如从1470648720编号备份中恢复

gitlab-rake gitlab:backup:restore BACKUP=1470648720

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

(4)重启gitlab服务

gitlab-ctl restart

4.3.Gitlab迁移

(1)在新的服务器部署gitlab。

(2)在备份服务器上面,找到最近的一次gitlab备份, 然后复制到新部署gitlab服务器的本地备份目录下。

(3)根据备份文件的编号执行如下命令环境即可:例如从1470648720编号备份中恢复

gitlab-rake gitlab:backup:restore BACKUP=1470648720

(4)设置gitlab域名信息,也就是服务器地址,然后切换你的dns解析到新的gitlab服务器地址

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.fblinux.com'

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

(6)重启gitlab服务

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

转载请注明:西门飞冰的博客 » 企业级git仓库gitlab基于国内源部署

喜欢 (3)or分享 (0)