以下介绍 CentOS 和 Docker 的 gitlab-ce 版本安装
一、环境准备
操作系统
-
Linux 发行版
- Ubuntu (18.04/20.04)
- Debian (9/10/11)
- AlmaLinux (8)
- CentOS (7)
- openSUSE Leap (15.3)
- SUSE Linux Enterprise Server (12 SP2/12 SP5)
- Red Hat Enterprise Linux (use the AlmaLinux or CentOS instructions)
- Scientific Linux (use the CentOS instructions)
- Oracle Linux (use the CentOS instructions)
-
不支持在 Microsoft Windows 上安装
软件要求
-
Redis
- GitLab 13.0 需要 Redis 4.0 或更高版本
- GitLab 15.0 及更高版本需要 Redis 5.0 或更高版本
- 建议使用 Redis 版本 6.0 或更高版本,从 GitLab 13.9 开始的 Omnibus GitLab 包使用 Redis 6.0
-
PostgreSQL
- GitLab 12.1 中删除了对 MySQL 的支持
- 可以配置外置的PostgreSQL,也可以使用 Omnibus GitLab 包内置安装的 PostgreSQL
GitLab 版本 | PostgreSQL 最低版本 |
---|---|
13.0 | 11 |
14.0 | 12.10 |
15.0 | 12.10 |
16.0 | 13.6 |
硬件要求
-
存储空间
- Omnibus GitLab软件包需要大约2.5GB的存储空间来安装
- 必要的硬盘空间取决于GitLab计划存储库的大小
- GitLab的数据盘支持本地文件系统(LVM)和网络文件系统(NAS、SAN、EBS)
- Redis 方面,每个用户大约 25 kB
-
CPU
- CPU 要求取决于用户数量和预期工作负载
- 建议最小4 核,最多可以支持 500 个用户
- 8 核支持多达 1000 个用户
-
内存
- 内存要求同样取决于用户数量和预期工作负载
- 建议最小4 G,最多可以支持 500 个用户
- 8 G支持多达 1000 个用户
- 运行 PostgreSQL 的服务器应至少需要有5-10 GB 的内存
- Sidekiq 使用多线程进程处理后台作业,10,000 个用户的活跃服务器上,Sidekiq 进程可能使用 1 GB 以上的内存
额外
- GitLab Runner
- 建议 GitLab 和 GitLab Runner 安装在不同的服务器上
- GitLab Runner 服务器要求:
- GitLab Runner 上配置的执行器类型
- 运行构建作业所需的资源
- 作业并发设置
- 单个作业在单个实例参考:
- 1 个虚拟CPU
- 3.75 GB 内存
二、GitLab安装
1、Linux安装(Omnibus 包)
centos 7版本
准备
- 如果想通过域名访问 GitLab,请确保该域名正确指向安装 GitLab 的服务器的 IP
- 检查命令:
host xxx.com
- 检查命令:
- 如果想在 GitLab上使用 HTTPS,请确保准备好该域的 SSL 证书
- 如果想要发送通知电子邮件,请安装并配置邮件服务器 (MTA),或第三方 SMTP 服务器
- 检查防火墙:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl reload firewalld
方案一、在线安装
-
添加yum源:
vi /etc/yum.repos.d/gitlab-ce.repo
- 添加以下内容:
ini[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ gpgcheck=0 enabled=1
- 更新本地yum缓存:
yum makecache fast
yum --showduplicates list gitlab-ce
-
安装依赖包:
yum install -y epel-release
yum install -y policycoreutils-python
yum install -y openssh-server perl
-
安装GitLab:
yum install gitlab-ce-1x.x.x
方案二、离线安装
- 官方下载地址:
- 安装依赖包:
rpm -ivh epel-release-latest-7.noarch.rpm
rpm -ivh policycoreutils-python-2.5-34.el7.x86_64.rpm
- 安装GitLab:
rpm -ivh gitlab-ce-1x.x.x-ce.0.el7.x86_64.rpm
2、Docker安装
GitLab Docker 镜像是 GitLab 的整体镜像,在单个容器中运行所有必要的服务
官方 Docker 镜像:
设置卷位置
- Linux 用户:
export GITLAB_HOME=/srv/gitlab
- MAC OS 用户:
export GITLAB_HOME=$HOME/gitlab
- GitLab 容器使用主机安装的卷来存储持久数据:
Local location | Container location | 用途 |
---|---|---|
$GITLAB_HOME/data |
/var/opt/gitlab |
存储应用程序数据 application data. |
$GITLAB_HOME/logs |
/var/log/gitlab |
存储日志 |
$GITLAB_HOME/config |
/etc/gitlab |
存储 GitLab 配置文件 |
(1) Docker Engine 安装
-
设置
GITLAB_HOME
,运行镜像:
*bashdocker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 256m \ gitlab/gitlab-ce:latest
- 如果使用 Kerberos 集成,则还必须发布 Kerberos 端口(例如:
--publish 8443:8443
)。否则将阻止使用 Kerberos 进行 Git 操作。
- 如果使用 Kerberos 集成,则还必须发布 Kerberos 端口(例如:
-
这将下载并启动 GitLab 容器并发布访问 SSH、HTTP 和 HTTPS 所需的端口。所有 GitLab 数据都将存储为
$GITLAB_HOME
. 该容器将restart
在系统重新启动后自动运行。 -
跟踪初始化过程:
docker logs -f gitlab
(2) Docker Compose 安装
-
创建
docker-compose.yml
文件:
*vbnetversion: '3.6' services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com' # Add any other gitlab.rb configuration here, each on its own line ports: - '80:80' - '443:443' - '22:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'
-
在
docker-compose.yml
目录下:docker compose up -d
三、初次登录
默认生成的root用户密码文件会在 24 小时后的第一次重新配置运行(gitlab-ctl reconfigure
)时自动删除。
1、Linux安装(Omnibus 包)
- 除非在安装过程中提供了自定义密码,否则密码将随机生成并在
/etc/gitlab/initial_root_password
中存储 - 使用此密码和用户名
root
在Web UI登录
2、Docker安装
- 使用
root
访问 GitLab URL,并使用以下命令中的用户名和密码登录:docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
四、GitLab配置
1、Linux安装(Omnibus 包)
- 默认配置文件存放位置:
/etc/gitlab/gitlab.rb
- 如果不存在通过命令查找:
find / -name gitlab.rb
- 配置生效:
gitlab-ctl reconfigure
gitlab-ctl restart
2、Docker安装
- 通过以下命令访问配置文件:
docker exec -it gitlab /bin/bash
docker exec -it gitlab editor /etc/gitlab/gitlab.rb
- 配置生效(容器启动时GitLab 会自动重新加载配置):
docker restart gitlab
常用配置项
bash
# url地址
external_url 'http://xxx.xxx.xxx.xxx:xxxx'
# 数据存放目录
git_data_dirs({
"default" => {
"path" => "/xxx/xxx"
}
})
# 上海时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# OAuth2.0
gitlab_rails['omniauth_enabled'] = true
# 禁止创建群组
gitlab_rails['gitlab_default_can_create_group'] = false
# 关闭流水线
gitlab_rails['gitlab_default_projects_features_builds'] = false