gitlab安装备份与还原

历览千载书,时时见遗烈。这篇文章主要讲述gitlab安装备份与还原相关的知识,希望能为你提供帮助。
gitlab最近针对中国市场推出了一个衍生的jihu版本,使用了一下,真的是臃肿臃肿臃肿。4C8G的机器跑起来都有些吃力。相对应的,13版本的gitlab还是用的比较舒服。以下就是gitlab的安装备份与还原流程。
关闭selinux

setenfore 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

selinux很安全,但是也很复杂,一般情况下,还是选择关闭她比较好。如果不关闭,在接下来的使用中你会发现很多限制,比如无法使用ssh key的方式git clone代码
启动ssh
systemctl enable sshd
systemctl start sshd

?防火墙策略# 将http和https加入防火墙策略,并重启防火墙。systemctl start firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl reload firewalld
systemctl enable firewalld


postfix配置# 修改postfix的配置文件
vim /etc/postfix/main.cf
# 使用 /inet_ 进行搜索
inet_interfaces=all
inet_protocols=all
systemctl start postfix
systemctl enable postfix
不建议使用postfix,很多邮件服务器不接受,建议参考在下文中配置smtp


安装gitlab-ce在线安装gitlab-ce

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install -y gitlab-ce-13.12.15-ce.0.el7.x86_64

PS 默认不加版本号,会安装最新的14版本。如果不知道具体的版本号,可以用这个命令来查看。

yum list--showduplicates | grep gitlab-ce


配置smtp邮箱通知
gitlab_rails[smtp_enable] = true
gitlab_rails[smtp_address] = "smtp.qq.com"
gitlab_rails[smtp_port] = 465
gitlab_rails[smtp_user_name] = "xxxx@foxmail.com"
gitlab_rails[smtp_password] = "xxxxxxxxx"
gitlab_rails[smtp_domain] = "smtp.qq.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] = xxxx@foxmail.com

这个示例使用的是免费的QQ邮箱
只有当smtp_port 为465,启用SSL连接,的时候才会是true,如果端口为25则不需要

另外[‘gitlab_email_from’] 和[‘smtp_user_name’] 必须是一样的否则会报错

其他类型的邮箱配置,在gitlab官网中有示例,包括腾讯企业邮箱,阿里企业邮箱,网易邮箱等
测试邮件配置
gitlab-rails console
Notify.test_email(xxxx@foxmail.com, Message Subject, Message Body).deliver_now

禁用非必要组件
如果没有必要,可以吧prometheus node-exporter grafana都禁用掉,这些组件太吃资源。禁用方法很简单,就是在配置文件中找到,相应的enable配置,然后去掉注释,改写成false

node_exporter[enable] = false
grafana[enable] = false
prometheus[enable] = false

更新配置初始化gitlab,在修改配置后也建议使用此命令
gitlab-ctl reconfigure



启动gitlab
gitlab-ctl start



备份与还原备份
需要制定备份路径

备份配置
gitlab_rails[manage_backup_path] = truegitlab_rails[manage_backup_path] = true
gitlab_rails[backup_path] = "/var/opt/gitlab/backups"


备份命令
/opt/gitlab/bin/gitlab-rake gitlab:backup:create


一般情况是放置到计划任务中进行备份

echo "30 0 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create" > > /var/spool/cron/root

还原
移动备份文件到配置文件中的目录,并修改权限。
sudo cp 11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar /var/opt/gitlab/backups/
sudo chown git:git /var/opt/gitlab/backups/11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar

停puma sidekiq,比较老的版本使用的不是puma而是unicorn
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
# 确认状态
sudo gitlab-ctl status

使用还原命令进行还原,只要主文件名即可,不需要.tar
# 注意,此操作将会覆盖已有的数据。
sudo gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce



常见问题Q:系统卡顿
A:随着gitlab的不断迭代,组件越来越多。如果非必须,建议禁用不需要的组件,另外,至少保证服务器配置在4C8G的配置。


Q:gitlab发送的邮件,比如password确认等邮件中的链接,无法打开。链接是example.com域名
A:修改gitlab配置文件 /etc/gitlab/gitlab.rb中external_url的配置,修改为要使用的域名。



Q:在web页面配置了ssh密钥,但是依旧无法免口令进行clone push pull等操作。
A:一下是需要注意的几点,建议逐个排查
  • 确保gitlab服务器上selinux已经关闭。如果未关闭,ssh会拒绝git账号的key认证。
  • gitlab服务器使用git账号进行操作,请确认git账号没有锁定,如果锁定,请用root权限解锁。
  • 确保git账号的ssh配置文件权限正常:  /var/opt/gitlab/.ssh/目录为700,/var/opt/gitlab/.ssh/authorized_keys文件权限为700。且和两个目录、文件的所有者为git.git


【gitlab安装备份与还原】   

    推荐阅读