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中。

相关推荐
极小狐9 小时前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven
小马爱打代码9 小时前
K8S - GitLab CI 自动化构建镜像入门
ci/cd·kubernetes·gitlab
杰克逊的日记10 小时前
gitlab相关面试题及答案
gitlab
极小狐13 小时前
极狐GitLab 容器镜像仓库功能介绍
java·前端·数据库·npm·gitlab
极小狐13 小时前
如何构建容器镜像并将其推送到极狐GitLab容器镜像库?
开发语言·数据库·机器学习·gitlab·ruby
木二_14 小时前
实践005-Gitlab CICD全项目整合
ci/cd·gitlab
大米☋18 小时前
GitLab搭建与使用(SSH和Docker)两种方式
docker·ssh·gitlab
极小狐2 天前
如何从极狐GitLab 容器镜像库中删除容器镜像?
java·linux·开发语言·数据库·python·elasticsearch·gitlab
木二_2 天前
实践003-Gitlab CICD编译构建
ci/cd·gitlab·devops
极小狐2 天前
如何使用极狐GitLab 软件包仓库功能托管 terraform?
linux·运维·git·ssh·gitlab·terraform