环境:CentOS 7
Gitlab版本:13.7.1 (版本列表: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum el6-CentOS6 el7-CentOS7 el8-CentOS8)
- 安装相关依赖
sudo yum install -y curl policycoreutils-python openssh-server
说明 本教程中示例场景的操作系统为CentOS 7 64位。如果您使用CentOS 8系统,
运行以上命令将出现找不到依赖包policycoreutils-python的问题,原因是CentOS
8的软件源中没有包含该依赖包。该依赖包不影响部署GitLab,您可以忽略该问题继续运行下文中的命令。
- 添加GitLab软件包仓库
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- 安装GitLab
sudo yum install -y gitlab-ce-13.7.1-ce.0.el7.x86_64
- 修改GilLab服务配置文件
vi /etc/gitlab/gitlab.rb
相关内容修改如下:
external_url ‘http://192.16.0.11:8888’
gitlab_rails[‘backup_path’] = “/data/gitlab/backups”
- 重新初始化配置并重启服务
gitlab-ctl reconfigure
gitlab-ctl restart
- 设置服务开机自启动
systemctl enable gitlab-runsvdir.service
- 设置语言为简体中文
【可选】 8. Gitlab配置邮件通知 (smtp方式)
vi /etc/gitlab/gitlab.rb
修改内容:
81行:smtp服务器地址
83行:邮箱地址
85行:自定义?
86行:有授权码可能填写自己的授权码,否则在84行使用密码
【可选】9. 自动备份
防止Gitlab服务器硬盘、服务异常等问题导致代码丢失,建议开启自动备份并将备份文件备份保存到远程文件服务器上,以下配置供参考。
(1)修改Gitlab配置文件中关于备份相关的配置信息
sudo vi /etc/gitlab/gitlab.rb
将以下内容的注释去掉:
gitlab_rails['manage_backup_path'] = ture
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
其中/var/opt/gitlab/backups可以修改为自己要存放备份文件的路径
将以下内容的注释去掉:
gitlab_rails['backup_keep_time'] = 604800
可以将”604800“改成自己想要的保存时间,这里单位是秒,604800表示一周,即备份文件最多将被保存一周。
(2)更新Gitlab配置
sudo gitlab-ctl reconfigure
(3)编写备份脚本
touch /opt/gitlab/backup.sh #若没有相关父级目录,请提前自行创建
backup.sh脚本文件内容如下:
gitlab-rake gitlab:backup:create #gitlab备份命令
scp -r /var/opt/gitlab/backups $user@$ip:$dir #远程文件拷贝命令,这里我是利用scp将备份文件拷贝到了远程文件服务器,需提前配置好ssh密钥,ssh的配置流程就不在这里说明了。
$user: 远程服务器用户
$ip: 远程服务器IP
$dir: 要拷贝到的远程服务器目录
为文件添加可执行权限:
chmod +x /opt/gitlab/backup.sh
(4)脚本运行测试
sh /opt/gitlab/backup.sh
脚本执行完成后若/var/opt/gitlab/backups目录下、远程文件服务器相应备份目录下出现相应备份文件(tar文件),则脚本编写正确。
(5)设置定时器
这里设置每天凌晨0点进行Gitlab备份:
sudo echo "0 0 * * * root /opt/gitlab/backup.sh -D 1" >> /etc/crontab
sudo service cron restart