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