GitLab 是一个基于 Git 的代码托管平台,它提供了版本控制、代码审查、项目管理和持续集成/持续部署(CI/CD)等功能,是 DevOps 生命周期中的重要工具。GitLab 可以自行在本地服务器上部署,也可以使用 GitLab 提供的云服务,提供了灵活性以满足不同组织的需求。
GitLab 适用于各种规模的团队和组织,特别是那些需要紧密集成和自动化流程的团队。它的优势在于集成了开发、运维和安全团队所需的多种工具,减少了团队间的摩擦,增强了协作。此外,GitLab 的开源特性使其能够在私有服务器上运行,对于企业内部网络构建私有仓库非常有用。
GitLab 由多个组件构成,如 NGINX、gitlab-shell、logrotate、postgresql、redis 和 unicorn 等。这些组件共同实现了 GitLab 的强大功能。其中,NGINX 负责处理 Web 请求,gitlab-shell 用于处理 Git 命令,postgresql 用于存储数据,redis 用于缓存等。
在 Ubuntu 下安装和设置 GitLab CE(Community Edition)涉及多个步骤,包括安装依赖、下载GitLab CE 安装包、配置 GitLab 以及优化性能等。
一、安装依赖
在开始安装 GitLab CE 之前,需要确保系统上安装了必要的依赖项。可以使用以下命令来更新系统并安装所需的依赖:
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates postfix
二、下载并安装 GitLab CE
有多种方法可以下载并安装 GitLab CE,包括在线安装和离线安装。
-
在线安装
添加 GitLab CE 的安装脚本到系统中:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
更新 apt 包列表并安装 GitLab CE:
sudo apt-get update
sudo apt-get install gitlab-ce
-
离线安装
从 GitLab CE 的官方下载页面下载适合你 Ubuntu 版本的 GitLab CE 安装包。
或者从国内源下载,如清华源:Index of /gitlab-ce/ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
我下载的是:gitlab-ce_17.3.7-ce.0_amd64.deb
注意选择正确的架构(如 amd64 或arm64)和 Ubuntu 版本(如 ubuntu/focal 适用于 Ubuntu 20.04 系列)。
将下载的安装包上传到服务器上,并使用以下命令进行安装:
sudo dpkg -i gitlab-ce_<version>_amd64.deb
其中,<version>是下载的安装包的版本号。
sudo dpkg -i gitlab-ce_17.3.7-ce.0_amd64.deb
三、配置 GitLab
GitLab 的主要配置文件是 /etc/gitlab/gitlab.rb。需要在这个文件中进行必要的配置,例如设置外部URL、修改默认端口、配置邮箱服务等。
sudo vim /etc/gitlab/gitlab.rb
-
设置外部 URL:
找到配置文件中的 external_url 配置项,并将其设置为你服务器的IP地址或域名加上端口号。
external_url 'https://your_server_ip_or_domain:your_port'
例如:external_url 'https://192.168.0.1:1234'
-
修改默认端口(如果需要):
在配置文件中找到 unicorn['port'] 和 nginx['listen_port'] 配置项,并修改为你希望的端口号。例如:
unicorn['port'] = 3001
nginx['listen_port'] = 3000
同时,还需要修改 /var/opt/gitlab/nginx/conf/gitlab-http.conf 文件中的监听端口。
-
配置邮箱服务(如果需要):
在配置文件中找到与邮箱服务相关的配置项,并进行如下设置:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "your_smtp_server_address"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "your_smtp_username"
gitlab_rails['smtp_password'] = "your_smtp_password"
gitlab_rails['smtp_domain'] = "your_smtp_domain"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
# 如果你的 SMTP 服务器启用了 TLS,则设置 smtp_tls 为 true,并删除smtp_enable_starttls_auto 行
# gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_ssl'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
-
应用配置:
每次修改配置文件后,都需要运行以下命令来应用配置:
sudo gitlab-ctl reconfigure
-
重启 GitLab:
如果需要重启 GitLab 服务,可以使用以下命令:
sudo gitlab-ctl restart
四、登录设置
在浏览器里输入:https://192.168.0.1:1234,使用 root 用户登陆。
-
初次登陆需要修改密码:
查看初始密码:sudo nano /etc/gitlab/initial_root_password
-
修改中文显示:
-
开始使用:
五、优化性能
GitLab对服务器资源的要求较高,特别是内存。如果服务器内存较小,可能需要进行一些优化来确保GitLab的稳定运行。
增加交换分区:
如果服务器内存不足,可以考虑增加交换分区(swap)来提供虚拟内存。这可以通过创建一个swap 文件并启用它来实现。
调整 GitLab 配置:
在 /etc/gitlab/gitlab.rb 配置文件中,可以根据服务器的实际情况调整一些配置项来优化性能。例如,可以调整 GitLab 的并发连接数、缓存大小等。
六、常用命令和配置文件地址
常用命令:
sudo gitlab-ctl status:查看 GitLab 服务状态。
sudo gitlab-ctl stop:停止 GitLab 服务。
sudo gitlab-ctl start:启动 GitLab 服务。
sudo gitlab-ctl restart:重启 GitLab 服务。
sudo gitlab-ctl reconfigure:应用配置文件中的更改。
sudo systemctl enable gitlab-runsvdir.service:启用开机自启动
配置文件地址:
主配置文件:/etc/gitlab/gitlab.rb
Nginx配置文件:/var/opt/gitlab/nginx/conf/gitlab-http.conf
七、配置 HTTPS 访问
如果需要使用 HTTPS 来访问 GitLab,可以配置 GitLab 使用自签名证书或购买并安装 SSL 证书。具体步骤可以参考 GitLab 官方文档中的相关指南。
通过以上步骤,应该能够在 Ubuntu下成功安装并配置 GitLab CE 。如果遇到任何问题,可以查阅 GitLab 官方文档或寻求社区的帮助。
老徐,2024/11/28