CentOS 7.x 安装 GitLab

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

这是初始化密码的文件,打开可以看到初始化密码!

# cat /etc/gitlab/initial_root_password

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,如果有端口则需要输入端口!首次的默认密码在上方有提到。

四、使用 GitLab

1、修改语言

五、迁移 GitLab

1、进入 [旧服务器] 执行备份

# gitlab-rake gitlab:backup:create

备注:如果没有修改 gitlab_rails['backup_path'] 备份路径的话,默认位置为 /var/opt/gitlab/backups

除备份指令外,还需备份两份文件!!!

/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
  • 打赏
请选择打赏方式
  • 微信
  • 支付宝

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部