GitLab本地安装指南

当前GitLab的最新版是v17.10,安装地址:https://about.gitlab.com/install/。当然国内也可以安装极狐GitLab版本,极狐GitLab 是 GitLab 中国发行版(JH)。极狐GitLab支持龙蜥,欧拉等国内的操作系统平台。安装地址及说明,请点击该链接:极狐GitLab下载

这里就以极狐版本为例了,服务器使用的龙蜥操作系统,以下是官网手册:

注意:以下安装教程是特定版本的极狐GitLab 在 Anolis OS 8.8 RHCK/ANCK 上的安装流程。
1. 安装和配置所需的依赖

执行下面命令完成依赖安装:

复制代码
sudo yum update
sudo yum install -y curl policycoreutils-python-utils openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
注意:如果依赖安装过程中出现错误,可以根据错误提示信息进行错误处理。
2. 下载极狐GitLab 安装包

下载适用于 Anolis 操作系统的极狐GitLab 安装包,这个需要根据自身情况选择合适的极狐GitLab 版本,比如以极狐GitLab 17.7.0 为例,针对 x86_64 架构,执行如下命令即可完成下载:

复制代码
curl -LOS https://packages.gitlab.cn/repository/el/8/gitlab-jh-17.7.0-jh.0.el8.x86_64.rpm
注意:您需要根据自身所用的 Anolis 操作系统版本下载对应的极狐GitLab 版本。

接下来,安装极狐GitLab。安装之前,需要确保您的DNS设置正确。注意:如果不设置域名,就没必要设置DNS了。此外,还需要通过设置 EXTERNAL_URL 环境变量来指定极狐GitLab 实例的 URL。

如果您想通过 HTTPS 来访问实例,那么您可以根据官方文档进行配置,让实例使用 Let's Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://(不带 s)。

如果您想为初始管理员用户( root )指定自定义的初始密码,可以根据文档指导进行配置。否则将默认生成随机密码。

接下来执行如下命令开始安装:

复制代码
export EXTERNAL_URL="https://ip地址" && rpm -ivh gitlab-jh-17.7.0-jh.0.el8.x86_64.rpm

其他配置详情可以查看 Omnibus 安装配置文档

3. 登录极狐GitLab 实例

使用第二步 EXTERNAL_URL 中配置的地址来访问安装成功的极狐GitLab 实例。用户名默认为 root 。如果在安装过程中指定了初始密码,则用初始密码登录,如果未指定密码,则系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并使用 root 用户名登录。

注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。

-------------------------------------------------分割线-------------------------------------------------

按照以上手册进行安装,我遇到了提示没有postgresql的错误,于是我手动安装了postgresql,然后重新执行上面的安装步骤,就没有报错了,安装完成。其他配置,可以参考官网:手册

使用命令查看启动状态:

bash 复制代码
gitlab-ctl status

正常情况下,会有如下这些进程:

bash 复制代码
[root@localhost lib]# gitlab-ctl status
run: alertmanager: (pid 350479) 598180s; run: log: (pid 350101) 598239s
run: gitaly: (pid 350493) 598179s; run: log: (pid 3848550) 613682s
run: gitlab-exporter: (pid 350516) 598178s; run: log: (pid 350000) 598259s
run: gitlab-kas: (pid 350554) 598166s; run: log: (pid 345443) 598445s
run: gitlab-workhorse: (pid 350573) 598166s; run: log: (pid 349916) 598273s
run: logrotate: (pid 839679) 559s; run: log: (pid 3848040) 613694s
run: nginx: (pid 350610) 598165s; run: log: (pid 349942) 598269s
run: node-exporter: (pid 350622) 598165s; run: log: (pid 349983) 598265s
run: postgres-exporter: (pid 350628) 598164s; run: log: (pid 350133) 598233s
run: postgresql: (pid 350640) 598162s; run: log: (pid 3849042) 613671s
run: prometheus: (pid 350642) 598162s; run: log: (pid 350066) 598245s
run: puma: (pid 350665) 598161s; run: log: (pid 349843) 598285s
run: redis: (pid 350670) 598161s; run: log: (pid 3848300) 613688s
run: redis-exporter: (pid 350678) 598161s; run: log: (pid 350032) 598254s
run: sidekiq: (pid 350688) 598158s; run: log: (pid 349862) 598278s

第一次启动时,我还遇到了postgresql起不来的问题。官网有介绍,如果使用内置的postgresql,无需做任何配置,所以我把刚才安装的postgresql又给卸载了,但db还是起不来,这个时候需要去/var/log/gitlab目录下查看对应的进程的日志。上面列出来的每个进程在该目录下都有对应的日志目录。打开postgresql的日志发现,有这么一段错误:

bash 复制代码
2025-04-09_13:03:46.54667 FATAL:  could not map anonymous shared memory: Cannot allocate memory
2025-04-09_13:03:46.54670 HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 4262232064 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
2025-04-09_13:03:46.54671 LOG:  database system is shut down

使用free -h命令,查看可用内存不多,上面的错误就表示请求的共享内存超出了系统可用资源,导致postgresql起不来。因为这台机器本身的内存也不大,可以选择修改 /etc/gitlab/gitlab.rb,降低参数:

bash 复制代码
postgresql['shared_buffers'] = "512MB"

然后重新配置并重启:

bash 复制代码
gitlab-ctl reconfigure
gitlab-ctl restart

接下来,查看系统启动情况:

bash 复制代码
gitlab-ctl status

一切正常,则可以访问web界面了,默认端口是80,所以直接输入ip即可进入登录界面,如果没有设置密码,则初始密码在/etc/gitlab/initial_root_password中。

相关推荐
霸道流氓气质12 天前
GitLab CI/CD 完全指南
linux·ci/cd·gitlab
sbjdhjd12 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
用什么都重名13 天前
Git 合并两个无共同历史的分支:从报错到解决全记录
git·gitlab
master33613 天前
GitLab (Docker) 常用命令及解决方案清单
docker·容器·gitlab
qq_3564086613 天前
GitLab 单机私有化部署文档(基于 Docker 环境)
docker·gitlab
lisanmengmeng15 天前
gitlab 免密配置
linux·服务器·gitlab
求知若渴,虚心若愚。16 天前
Jenkins 自动化流水线(CICD)
运维·自动化·gitlab
mnasd17 天前
Gitlab + Jenkins 实现 CICD
运维·gitlab·jenkins
鹤鸣的日常18 天前
前端运行时动态环境变量方案
前端·react.js·docker·前端框架·vue·gitlab
starvapour18 天前
Ubuntu部署gitlab频繁出现502的问题
linux·ubuntu·gitlab