gitlab安装备份与还原

Posted quietguoguo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

gitlab安装备份与还原_gitlab

配置

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的配置,修改为要使用的域名。

gitlab安装备份与还原_gitlab_02


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安装备份与还原的主要内容,如果未能解决你的问题,请参考以下文章

gitlab 安装备份与还原

gitlab备份与还原

gitlab备份与还原

gitlab备份还原及迁移

Gitlab服务器备份与还原

Gitlab服务器备份与还原