代码仓库 GitLab 私有化部署和使用

BBigSun 评论509阅读模式

官方地址:https://gitlab.cn/install/

服务器配置要求

  • 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

代码仓库 GitLab 私有化部署和使用文章源自十年又十年-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/,登录后可以看到以下页面:

代码仓库 GitLab 私有化部署和使用

注意:仓库前缀为 http://192.168.60.160/,所以推荐生产环境中直接使用域名 https://gitlab.xxx.com/,不要加端口!!!(使用 443 端口也很安全!!!)

代码仓库 GitLab 私有化部署和使用

4. 验证发送邮件功能

发送验证邮件:

  • 执行 gitlab-rails console 命令进入控制台。然后,在控制台提示符下输入以下命令,使系统发送测试电子邮件
  • 2U 4G 的配置打开控制台有点慢,要耐心等待
  • 请修改邮箱地址为自己的邮箱
Notify.test_email('2394665208@qq.com', 'Message Subject', 'Message Body').deliver_now

代码仓库 GitLab 私有化部署和使用

说明使用 postfix 可以发送邮件!虽然发送成功了,但是邮箱可能收不到邮件(postfix 的弊端!),所以我们来配置 smtp 服务器来发送邮件,以 QQ 邮箱为例。

配置 QQ SMTP

1、获取授权码:

  • QQ邮箱 -> 账户 -> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 -> 开启 POP3/SMTP服务

代码仓库 GitLab 私有化部署和使用

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 私有化部署和使用
代码仓库 GitLab 私有化部署和使用
要选择公开项目才可以使用 GitLab Pages 服务
代码仓库 GitLab 私有化部署和使用

由于 GitLab Pages 服务需要域名,这里不搞了。

6. 安装 runner

官方地址:https://docs.gitlab.com/runner/install/

安装 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 中去

代码仓库 GitLab 私有化部署和使用

8. 修改语言为中文

GitLab 支持不同的用户使用不同的语言,登录后点击个人资料,选择偏好设置(Performance):

代码仓库 GitLab 私有化部署和使用

方式二:容器化部署

容器化部署和源码部署的配置基本一样,只是需要进入容器中去执行!

进入容器命令: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

纸上得来终觉浅,绝知此事要躬行。

weinxin
17688689121
我的微信
微信扫一扫
BBigSun
  • 本文由 BBigSun 发表于 2023年 3月 27日 14:38:40
  • 转载请务必保留本文链接:https://www.bbigsun.com/376.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定