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密码,密码需要满足复杂度要求
(6)登录成功如下所示
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创建一个用户,创建完成会给用户邮箱发送邮件,让用户设置自己账户的密码,接收邮件信息如下。
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