路漫漫其修远兮
吾将上下而求索

gitlab-ee安装以及备份恢复

一、前言
1、本文主要内容
GitLab社区版部署
GitLab配置禁用创建组权限
GitLab配置邮件(SMTP)
GitLab常用命令说明

2、GitLab介绍
GitLab一个开源的git仓库管理平台,方便团队协作开发、管理。在GitLab上可以实现完整的CI(持续集成)、
CD(持续发布)流程。而且还提供了免费使用的Plan,以及免费的可以独立部署的社区版本(https://gitlab.com/gitlab-org/gitlab-ce )。
官网:https://about.gitlab.com/

3、本篇环境信息
服务器
服务器名	操作系统	硬件配置	IP	说明
GitLab	CentOS 7	2C4G	192.168.88.41	部署GitLab社区版
软件
工具/环境	版本
GitLab	社区版 11.1.4


二、准备工作
1、安准基础依赖
关闭防火墙


三、部署过程
本次我们部署的是商业版:gitlab-ee

1、Yum安装GitLab
添加GitLab Package
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
安装GitLab
yum install -y gitlab-ee
安装成功后会看到gitlab-ee打印了以下图形

2、配置GitLab站点Url
GitLab默认的配置文件路径是/etc/gitlab/gitlab.rb

默认的站点Url配置项是:
external_url 'http://git.andblog.cn'
也可以用IP代替域名,这里根据自己需求来即可

3、启动并访问GitLab
启动GitLab
#重新配置并启动
gitlab-ctl reconfigure

#完成后将会看到如下输出
Running handlers complete
Chef Client finished, 432/613 resources updated in 03 minutes 43 seconds
gitlab Reconfigured!
访问GitLab
将设置的域名DNS解析到服务器IP,或者修改本地host将域名指向服务器IP。
访问:http://git.andblog.cn

这时候会提示为管理员账号设置密码。管理员账号默认username是root。
设置完成之后即可使用root账号登录,登陆后会进入欢迎界面。


四、GitLab常用配置
1、邮件配置
配置邮箱可以让GitLab在发生相应事件的时候进行邮件通知
比如:找回密码、添加邮箱等

#修改配置文件
vi /etc/gitlab/gitlab.rb

#邮件配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.163.com'
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = 'yourmail@163.com'
gitlab_rails['smtp_password'] = 'yourpasswd'
gitlab_rails['smtp_domain'] = 'smtp.163.com'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'yourmail@163.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'

#保存后,重新配置并启动GitLab
gitlab-ctl reconfigure

2、禁用创建组权限
GitLab默认所有的注册用户都可以创建组。但对于团队来说,通常只会给Leader相关权限。
虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置GitLab默认禁用创建组权限。

#修改配置文件
vi /etc/gitlab/gitlab.rb

#开启gitlab_rails['gitlab_default_can_create_group'] 选项,并将值设置为false
### GitLab user privileges
gitlab_rails['gitlab_default_can_create_group'] = false

#保存后,重新配置并启动GitLab
gitlab-ctl reconfigure

3、gitlab-ctl常用命令介绍
命令	说明
check-config	检查在gitlab中是否有任何配置。在指定版本中删除的rb
deploy-page	安装部署页面
diff-config	将用户配置与包可用配置进行比较
remove-accounts	删除所有用户和组
upgrade	升级
service-list	查看所有服务
once	如果GitLab服务停止了就启动服务,如果已启动就不做任何操作
restart	重启GitLab服务
start	如果GitLab服务停止了就启动服务,如果已启动就重启服务
stop	停止GitLab服务
status	查看GitLab服务状态
reconfigure	reconfigure重新配置GitLab并启动

五、备注
本篇参考
https://about.gitlab.com/installation/#centos-7
https://ken.io/note/centos7-gitlab-install-tutorial
gitlab重置密码
https://docs.gitlab.com/ee/security/reset_root_password.html





gitlab备份恢复测试

1、Gitlab 创建备份
1.1 创建备份文件
首先我们得把老服务器上的Gitlab整体备份,使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份。
# gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1502357536_2017_08_10_9.4.3_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整
部分, 其中开头的1502357536_2017_08_10_9.4.3是备份创建的日期

下面文件需要手动备份,自动备份不会备份
/etc/gitlab/ 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 邮件配置备份

生成完后,/var/opt/gitlab/backups目录创建一个名称类似为1502357536_2017_08_10_9.4.3_gitlab_backup.tar的压缩包


当然你也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
/var/opt/gitlab/backups修改为你想存放备份的目录即可,例如下面代码将备份路径修改为/mnt/backups
gitlab_rails['backup_path'] = '/mnt/backups'

修改完成之后使用下面命令重载配置文件即可.
gitlab-ctl reconfigure


1.2 Gitlab自动备份
1.2.1 定时自动备份
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1  

或者直接定时执行一个脚本 auto_backup.sh ,脚本内容为
/opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

然后再 /etc/crontab中,添加相关任务定时执行 auto_backup.sh 脚本文件
chmod +x auto_backup.sh
/etc/crontab 中添加执行脚本的定时任务,代码如下:
0 2    * * *   root    /data/gitlabData/backups/auto_backup.sh -D 1   


1.2.2 设置备份过期时间
设置只保存最近7天的备份,编辑 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],设置为你想要设置的值,然后保存。
gitlab_rails['backup_keep_time'] = 604800  


2、 Gitlab迁移
2.1 copy老服务器上面的备份文件到新服务器
2.1.1 确保新Gitlab服务器和老Gitlab服务器版本相同
第一步,新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的9.4.3版本的Gitlab, 那么迁移之前, 最好将老服务器
的Gitlab 升级为9.4.3再进行备份.

第二步,如果你没修改过默认备份目录的话,需要将老服务器上的备份文件目录(/var/opt/gitlab/backups目录)下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups目录。

2.1.3 从备份文件中恢复gitlab
1、将备份文件权限修改为777
第一步,将备份文件权限修改为777,不然可能恢复的时候会出现权限不够,不能解压的问题
chmod 777 1502357536_2017_08_10_9.4.3_gitlab_backup.tar 

2、执行命令停止相关数据连接服务
第二步,执行命令停止相关数据连接服务

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

3、执行命令从备份文件中恢复Gitlab
第三步,执行命令从备份文件中恢复Gitlab
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

例如我们的备份文件的编号是1502357536_2017_08_10_9.4.3,因此执行下面的命令即可恢复gitlab
gitlab-rake gitlab:backup:restore BACKUP=1502357536_2017_08_10_9.4.3

敲完命令后,出现第一个交互页面,
root@ubuntu4146:/var/opt/gitlab/backups# gitlab-rake gitlab:backup:restore BACKUP=1502357536_2017_08_10_9.4.3
Unpacking backup ... done
Before restoring the database we recommend removing all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed.

Do you want to continue (yes/no)? 
输入“yes”继续。

出现第二个交互页面,
Put GitLab hooks in repositories dirs [DONE]
done
Restoring uploads ... 
done
Restoring builds ... 
done
Restoring artifacts ... 
done
Restoring pages ... 
done
Restoring lfs objects ... 
done
This will rebuild an authorized_keys file.
You will lose any data stored in authorized_keys file.
Do you want to continue (yes/no)? 
输入“yes”继续。

4、恢复 /etc/gitlab目录下的文件

5、gitlab-ctl reconfigure

6、执行命令从备份文件中恢复Gitlab
gitlab-ctl start

未经允许不得转载:江哥架构师笔记 » gitlab-ee安装以及备份恢复

分享到:更多 ()

评论 抢沙发

评论前必须登录!