GitLab 简介
GitLab是整个DevOps生命周期的第一个应用程序。其使用与GitHub类似,并且提供了许多DevOps相关的功能。GitLab提供无与伦比的可见性,更高的效率和全面的治理。这使得软件生命周期加快了200%,从根本上提高了业务速度。
官方网站: https://about.gitlab.com/
一、安装依赖及配置
同时打开 HTTP 访问和 SSH 访问
# yum -y update
# yum install -y curl policycoreutils-python openssh-server
# systemctl enable sshd
# systemctl start sshd
# yum -y install postfix
# systemctl enable postfix
# systemctl start postfix
防火墙启动的情况下:
# firewall-cmd --permanent --add-service=http
# systemctl reload firewalld
二、安装/配置 GitLab
1、添加 GitLab 软件库
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
2、安装 GitLab
# yum -y install gitlab-ce
3、配置 GitLab
# vim /etc/gitlab/gitlab.rb
修改访问地址及端口
# external_url 'http://gitlab.example.com'
external_url '[域名/IP] 或 [域名/IP:端口]'
备注:端口默认 80 时,无需配置端口
修改访问端口
# nginx['listen_port'] = 80
nginx['listen_port'] = 新的端口号
备注:端口默认 80 时,无需配置
# gitlab_rails['gitlab_shell_ssh_port'] = 22
gitlab_rails['gitlab_shell_ssh_port'] = 新的端口号
注意:这里配置的端口需要与sshd的端口保持一致!!! 如果你的 sshd 是默认的,则可以不用修改。
若域名为 HTTPS 则需要配置 Nginx
# nginx['redirect_http_to_https'] = false
nginx['redirect_http_to_https'] = true
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"
nginx['ssl_certificate'] = 'SSL 的 public.crt'
nginx['ssl_certificate_key'] = 'SSL 的 *.key'
修改GitLab代码仓库位置(可选)
# git_data_dirs({
# "default" => {
# "path" => "/mnt/nfs-01/git-data"
# }
# })
备注:本配置的默认地址是 >>> /var/opt/gitlab/git-data
修改GitLab备份压缩包文件位置(可选)
# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "新的路径"
备注:本配置的默认地址是 >>> /var/opt/gitlab/backups
4、初始化 GitLab
# gitlab-ctl reconfigure
默认安装位置:/etc/gitlab
![](https://cxiaoyu.cn/wp-content/uploads/2023/11/image-1024x349.png)
这是初始化密码的文件,打开可以看到初始化密码!
# cat /etc/gitlab/initial_root_password
![](https://cxiaoyu.cn/wp-content/uploads/2023/11/image-1-1024x148.png)
5、其他指令
# gitlab-ctl restart [重启]
# gitlab-ctl start [启动]
# gitlab-ctl stop [停止]
# gitlab-ctl status [状态]
# systemctl enable gitlab-runsvdir.service [开机自启,上方的 systemctl enable sshd 同等效果]
6、配置更新
每次修改配置后,都需要执行如下指令,使其生效!
# gitlab-ctl reconfigure
# gitlab-ctl restart
三、访问 GitLab
使用你配置的域名/IP,如果有端口则需要输入端口!首次的默认密码在上方有提到。
![](https://cxiaoyu.cn/wp-content/uploads/2023/11/image-2-1024x492.png)
四、使用 GitLab
1、修改语言
![](https://cxiaoyu.cn/wp-content/uploads/2023/11/image-3-1024x492.png)
五、迁移 GitLab
1、进入 [旧服务器] 执行备份
# gitlab-rake gitlab:backup:create
备注:如果没有修改 gitlab_rails['backup_path']
备份路径的话,默认位置为 /var/opt/gitlab/backups
![](https://cxiaoyu.cn/wp-content/uploads/2023/11/image-5-1024x586.png)
除备份指令外,还需备份两份文件!!!
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
注意:将 1699237777_2023_11_06_16.5.1_gitlab_backup.tar 备份包,及两份文件下载及上传到 [新服务器] 中!!!
2、进入 [新服务器] 操作恢复
操作备份恢复前,需要先进行 GitLab 安装及初始化!
值得注意的是,恢复备份前需看看备份文件的版本号,最好安装原本的 GitLab,避免恢复失败!
例如下方的备份文件,则是 GitLab 16.5.1…
将 1699237777_2023_11_06_16.5.1_gitlab_backup.tar
文件,上传至 /var/opt/gitlab/backups
![注意:我没有修改备份路径,此处是默认的配置]
做完以上操作后,执行恢复备份指令:
关闭 GitLab 某些服务
# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
恢复备份
# gitlab-rake gitlab:backup:restore BACKUP=1699237777_2023_11_06_16.5.1
文件替换
将 /etc/gitlab/gitlab.rb 文件替换!
更新配置
# gitlab-ctl reconfigure
文件替换
将 /etc/gitlab/gitlab-secrets.json 文件替换!
备注:此文件保存的认证加密内容,不替换可能会出现402或502的错误。那么需要之前连接过的用户,进行重新连接。
重启
# gitlab-ctl restart
六、优化内存
# vim /etc/gitlab/gitlab.rb
# puma['worker_timeout'] = 60
# puma['worker_processes'] = 2
# puma['min_threads'] = 4
# puma['max_threads'] = 4
puma['worker_timeout'] = 30
puma['worker_processes'] = 2
puma['min_threads'] = 2
puma['max_threads'] = 4
# postgresql['shared_buffers'] = "256MB"
postgresql['shared_buffers'] = "128MB"
# sidekiq['max_concurrency'] = 20
# sidekiq['min_concurrency'] = nil
sidekiq['max_concurrency'] = 8
sidekiq['min_concurrency'] = nil
- 打赏
请选择打赏方式
![](https://cxiaoyu.cn/wp-content/plugins/wzbaibaoxiang/images/wzt_chahao.png)
![](https://cxiaoyu.cn/wp-content/uploads/2023/06/微信二维码20230606.jpg)
![](https://cxiaoyu.cn/wp-content/uploads/2021/12/QQ二维码.png)
- 微信
- 支付宝