GitLab相关维护信息
GitLab 简介
- GitLab由主要由以下服务构成,他们共同承担了Gitlab的运作需要:
- nginx: 静态web服务器
- gitlab-shell: 用于处理Git命令和修改authorized keys列表
- gitlab-workhorse: 轻量级的反向代理服务器
- logrotate:日志文件管理工具
- postgresql:数据库
- redis:缓存数据库
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:HTTP服务,GitLab Rails应用是托管在这个服务器上面的。
- 主要配置文件目录:
- 主配置文件: /etc/gitlab/gitlab.rb
- 文档根目录: /opt/gitlab
- 默认存储库位置: /var/opt/gitlab/git-data/repositories
- Nginx配置文件: /var/opt/gitlab/nginx/conf/gitlab-http.conf
- Postgresql数据目录: /var/opt/gitlab/postgresql/data
GitLab安装
以下为通过安装包的形式进行GitLab安装:
1.手动下载指定安装包的方式:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
2.命令下载指定安装包的方式:wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm
3.进入到安装包所在目录下进行安装:sudo rpm -Uvh gitlab-ce-14.6.3-ce.0.el7.x86_64.rpm
4.安装完成后对配置文件进行配置:给external_url配置域名或ip。注意:如果需配置自定义端口还需配置puma['port'] = 指定端口。如果端口被占用则需配置nginx['listen_port'] = 指定端口
5.配置完成后需重新加载配置:gitlab-ctl reconfigure
6.注意:除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password
文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure
自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root 登录
GitLab常用命令
- 更新配置,并启动GitLab服务:
gitlab-ctl reconfigure
- 启动 GitLab:
gitlab-ctl start
- 重启 GitLab:
gitlab-ctl restart
- 停止 GitLab:
gitlab-ctl stop
- 查看GitLab服务状态:
gitlab-ctl status
- 查看GitLab日志:
gitlab-ctl tail
- 卸载GitLab:
gitlab-ctl uninstall
GitLab更新
- 查看版本号命令:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
GitLab默认安装路径:
1
2
3
4/opt/gitlab/ ## 主目录
/etc/gitlab/ ## 放置配置文件
/var/opt/gitlab/ ## 各个组件
/var/log/gitlab/ ## 放置日志文件官方安装文档及安装包下载
GitLab14.10:官方升级文档
GitLab的跨版本升级,需要先升级到当前大版本的最高版本后再升到下一版本。每升级一个版本都要重启gitlab登陆页面看看,有没有问题,确定无误之后方可进行升级下一个版本,因此如需升级到15版本升级路线如下:14.6.3 —> 14.10.5 —> 15.0.4—> 15.1.1
安装包官方下载源:链接
安装包清华下载源:链接
或通过wget下载: wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm
确认升级影响
对于单节点安装,GitLab 在升级过程中对用户不可用。用户的 Web 浏览器显示Deploy in progress消息或502错误。升级前备份
GitLab 提供了用于备份和恢复 GitLab 实例的 Rake 任务。
应用程序数据备份会创建一个包含数据库、所有存储库和所有附件的存档文件。
您只能将备份恢复到与 创建它的 GitLab完全相同的版本和类型 (CE/EE) 。将项目从一台服务器迁 移到另一台服务器的最佳方式是通过备份和恢复。
备份命令(备份好的数据在没改备份路径的情况下,默认的目录是:/var/opt/gitlab/backups):- GitLab 12.2 或更高版本:
gitlab-backup create
- GitLab 12.1 及更早版本:
gitlab-rake gitlab:backup:create
- GitLab 12.2 或更高版本:
1 | 注意: |
配置文件需要单独备份:
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
- 升级到14.10版本:
下载安装包:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm
升级新版本:
rpm -Uvh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm
恢复备份:
- 先拷贝要恢复的文件到:
/var/opt/gitlab/backups
- 进入到备份文件夹下执行(对应文件时间戳):
gitlab-rake gitlab:backup:restore BACKUP = 1596428908_2020_08_03_9.4.5
- 注意该恢复文件的权限,有可能影响GitLab恢复命令的执行!
- 先拷贝要恢复的文件到:
GitLab定时备份
修改配置文件:vim /etc/gitlab/gitlab.rb
1 | gitlab_rails['manage_backup_path'] = true //开启备份功能 |
重新载入GitLab配置:gitlab-ctl reconfigure
定时备份方式一(只有root用户能操作):
- 编辑定时器配置 :
vim /etc/crontab
- 加入以下配置(备份时间根据需要进行配置,以下为每天22点进行备份):
0 22 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
- 最后重启下:
systemctl restart crond
定时备份方式二(所有用户都能操作):
- 添加定时任务:
crontab -e
- 查看已添加的定时任务:
crontab -l
- 例子:
0 22 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
GitLab卸载
- 先停止服务:
gitlab-ctl stop
- 卸载GitLab(注意版本类型):
rpm -e gitlab-ce
- 查看GitLab进程:
ps aux | grep gitlab
- 杀掉第一个进程(就是带有好多………….的进程):
kill -9
- 删除所有包含gitlab文件:
find / -name "*gitlab*" | xargs rm -rf
相关资料查阅:
https://www.cnblogs.com/lgj8/p/14637893.html
https://blog.csdn.net/weixin_42424397/article/details/125033027