服务器配置要求
- CPU:
>= 2U
官方推荐配置:4U
- 内存:
>= 4G
官方推荐配置:8G
一些建议:文章源自十年又十年-https://www.bbigsun.com/376.html
- GitLab 最好独自使用一台服务器,该服务器上不要再运行其他应用,或者安装 nginx 等等。
- GitLab 推荐容器化部署,部署升级简单,维护方便,与服务器隔离。
支持功能
- 支持 HTTP、HTTPS 和 SSH 访问
- 支持发送邮件通知
- 支持 GitLab Pages
- 支持 CI/CD 流水线
- 支持项目使用镜像仓库
方式一:源码部署
系统:centos7
文章源自十年又十年-https://www.bbigsun.com/376.html
1. 安装和配置必须的依赖项
在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。文章源自十年又十年-https://www.bbigsun.com/376.html
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
下一步,安装 Postfix 以发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装极狐GitLab 后配置外部 SMTP 服务器。文章源自十年又十年-https://www.bbigsun.com/376.html
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
在安装 Postfix 的过程中可能会出现一个配置界面,在该界面中选择“Internet Site”并按下回车。把“mail name”设置为您服务器的外部 DNS 域名并按下回车。如果还有其它配置界面出现,继续按下回车以接受默认配置。文章源自十年又十年-https://www.bbigsun.com/376.html
2. 下载/安装极狐GitLab
配置极狐GitLab 软件源镜像。文章源自十年又十年-https://www.bbigsun.com/376.html
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
文章源自十年又十年-https://www.bbigsun.com/376.html
接下来,安装极狐GitLab。确保您已正确设置您的 DNS,并更改 https://gitlab.example.com 为您要访问极狐GitLab 实例的 URL。安装包将在该 URL 上自动配置和启动极狐GitLab。文章源自十年又十年-https://www.bbigsun.com/376.html
对于 https 站点,极狐GitLab 将使用 Let's Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://(不带s)。文章源自十年又十年-https://www.bbigsun.com/376.html
如果您想为初始管理员用户(root)指定自定义密码,请查看文档。如果未指定密码,将自动生成随机密码。文章源自十年又十年-https://www.bbigsun.com/376.html
执行如下命令开始安装:
sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-jh
我的服务器IP是:192.168.60.160,所以我执行如下命令:
sudo EXTERNAL_URL="http://192.168.60.160" yum install -y gitlab-jh
3. 访问极狐GitLab 实例并登录
除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root 登录。
使用以下命令获取 root 用户密码:
grep 'Password:' /etc/gitlab/initial_root_password
浏览器访问:http://192.168.60.160/,登录后可以看到以下页面:
注意:仓库前缀为 http://192.168.60.160/,所以推荐生产环境中直接使用域名 https://gitlab.xxx.com/,不要加端口!!!(使用 443 端口也很安全!!!)
4. 验证发送邮件功能
发送验证邮件:
- 执行
gitlab-rails console
命令进入控制台。然后,在控制台提示符下输入以下命令,使系统发送测试电子邮件 - 2U 4G 的配置打开控制台有点慢,要耐心等待
- 请修改邮箱地址为自己的邮箱
Notify.test_email('2394665208@qq.com', 'Message Subject', 'Message Body').deliver_now
说明使用 postfix 可以发送邮件!虽然发送成功了,但是邮箱可能收不到邮件(postfix 的弊端!),所以我们来配置 smtp 服务器来发送邮件,以 QQ 邮箱为例。
配置 QQ SMTP
1、获取授权码:
QQ邮箱
->账户
->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
-> 开启POP3/SMTP服务
2、修改 /etc/gitlab/gitlab.rb
配置文件:
# 开启smtp服务
gitlab_rails['smtp_enable'] = true
# smtp 服务器地址/端口(连接smtp服务器)
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
# 邮箱账号/授权码(登录邮箱)
gitlab_rails['smtp_user_name'] = "2394665208@qq.com"
gitlab_rails['smtp_password'] = "jpfzzdtxfaphdjfc"
gitlab_rails['smtp_authentication'] = "login"
# smtp_tls加密
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
# 发件人
gitlab_rails['gitlab_email_from'] = 'sun.and.star@qq.com'
gitlab_rails['smtp_domain'] = "smtp.qq.com"
刷新配置:
sudo gitlab-ctl reconfigure
3、发送验证邮件
如果发送成功,在自己的邮箱也会收到邮件!
5. 验证 Github Pages
创建一个新的项目,从模板创建一个 GitBook 项目
要选择公开项目才可以使用 GitLab Pages 服务
由于 GitLab Pages 服务需要域名,这里不搞了。
6. 安装 runner
安装 runner:
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner
# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
连接 gitlab:
sudo gitlab-runner register --url http://192.168.60.160/ --registration-token $REGISTRATION_TOKEN
7. 集成 harbor
集成 harbor 后,就会将镜像保存到 harbor 中去
8. 修改语言为中文
GitLab 支持不同的用户使用不同的语言,登录后点击个人资料,选择偏好设置(Performance):
方式二:容器化部署
容器化部署和源码部署的配置基本一样,只是需要进入容器中去执行!
进入容器命令:docker exec -it gitlab bash
安装 docker-compose 单机版
curl -SL https://github.com/docker/compose/releases/download/v2.17.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
如果 docker-compose 无法使用,配置一下环境变量:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安装 docker
卸载旧版本 docker:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
设置仓库地址:
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本 Docker Engine:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动/自启动 Docker:
sudo systemctl start docker
sudo systemctl enable docker
1. 设置卷位置
在设置其他所有内容之前,请配置一个新的环境变量 $GITLAB_HOME,指向配置、日志和数据文件所在的目录。 确保该目录存在并且已授予适当的权限。
对于 Linux 用户,将路径设置为 /srv/gitlab:
export GITLAB_HOME=/srv/gitlab
极狐GitLab 容器使用主机装载的卷来存储持久数据:
本地位置 | 容器位置 | 使用 |
---|---|---|
$GITLAB_HOME/data | /var/opt/gitlab | 用于存储应用程序数据。 |
$GITLAB_HOME/logs | /var/log/gitlab | 用于存储日志。 |
$GITLAB_HOME/config | /etc/gitlab | 用于存储极狐GitLab 配置文件。 |
2. 使用 Docker Engine 安装 GitLab
运行镜像:
- 下载并启动极狐GitLab 容器
- 发布访问 SSH、HTTP 和 HTTPS 所需的端口
- 数据将存储在 $GITLAB_HOME 的子目录中
- 系统重启后,容器将自动 restart
sudo docker 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 \
registry.gitlab.cn/omnibus/gitlab-jh:latest
如果您使用的是 SELinux,请改为运行以下命令:
sudo docker 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:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
容器初始化时间较长,可以使用以下命令追踪初始化进度:
sudo docker logs -f gitlab
访问极狐 GitLab URL,并使用用户名 root 和来自以下命令的密码登录:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
3. 使用 Docker Compose 安装 GitLab
推荐使用该方法安装 GitLab
hostname
: 容器的主机名称external_url
: gitlab 访问地址、代码克隆地址
docker-compose.yml
version: '3.6'
services:
web:
image: 'registry.gitlab.cn/omnibus/gitlab-jh:latest'
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'
TZ: 'Asia/Shanghai'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.60.160'
# Add any other gitlab.rb configuration here, each on its own line
nginx['listen_port'] = 80
nginx['client_max_body_size'] = '2048m'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "test@qq.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'test@qq.com'
gitlab_rails['smtp_domain'] = "smtp.mail.qq.com"
user["git_user_email"] = "test@qq.com"
gitlab_rails['openssl_verify_mode'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
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 相同的目录下并启动极狐GitLab:
sudo docker-compose up -d
纸上得来终觉浅,绝知此事要躬行。
评论