GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署

预期目标源代码管理借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等 。
自动化部署源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署,借助GitLab-runner实现持续交付部署,供用户访问项目新版 , 这里用在开发环境 。
环境说明硬件基本要求:4核4GRHEL8 Linux operating system:这里用官网提到的 AlamLinux8(安装GitLab时,系统的 /boot 需要有1GB以上的空间)GitLab:用于源代码管理Git:用于远程自动拉取源代码GitLab-runner:用于实现自动化部署的实例dotnet 6.0:测试站点的运行环境
环境安装最主要的两个安装 GitLab、GitLab-runner 通常会分开部署 , 这里计划所有的安装均在同一台服务器中 。
AlmaLinux8.6 operating system 安装AlmaLinux官网:https://almalinux.orgGitLab的安装包有800+MB,在安装GitLab时,遇到系统boot分区空间不足的现象,这里需要将系统的 /boot 分区调整为1GB以上的空间 。下图为安装Linux时的分区设置 。

GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署

文章插图
GitLab 安装参考官方提供的安装要求 https://gitlab.cn/install/
安装前提关于防火墙,需要打开 HTTP、HTTPS 和 SSH 访问 。通常Linux都会默认安装了SSH等常用工具 。(可选) 如果您打算仅从本地网络访问极狐GitLab , 则可以跳过它 。
# OpenSSH 的安装dnf install -y curl policycoreutils openssh-server openssh-clients# 开启开机自启动systemctl enable sshd# 启动 OpenSSH 服务systemctl start sshd## 配置永久开启防火墙 http、httpsfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=https# 配置生效systemctl reload firewalld(可选) GitLab 通过 Postfix 发送电子邮件通知,或者跳过此步骤使用其他解决方案发送电子邮件 。
# Postfix 的安装dnf install postfix# 开启开机自启动systemctl enable postfix# 启动 Postfix 服务systemctl start postfix下载/安装 GitLab,配置 GitLab 软件源镜像先下载 GitLab 镜像仓库
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash【GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署】GitLab 镜像库下载完成后的说明:1、镜像库文件 gitlab-jh.repo 保存于 /etc/yum.repos.d/ 目录中2、生成 gitlab-jh 镜像的缓存3、再安装 gitlab-jh如下图所示:
GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署

文章插图
安装 GitLab 应用到系统
# 按照上一步的说明# 先创建镜像缓存(不是必须 , 为了后续的快速安装)dnf clean all && dnf makecache# 再安装 GitLab 应用到系统,并绑定访问地址sudo EXTERNAL_URL="http://{所在服务器IP或域名}" dnf install -y gitlab-jh# 以上仅用 http 的方式 , 不用 https 方式 。登录到 GitLab 页面
# 安装成功后 , 首次登陆自动生成的密码存放于:/etc/gitlab/initial_root_password 中(只有24H的保留期限)# 查看密码cat /etc/gitlab/initial_root_password## 在浏览器中打开访问地址(安装时设置的 http://{所在服务器IP或域名})# 启动慢,出现502,需要耐心等待几分钟## 然后使用默认管理员账号 root 和查找到的初始密码 进行登录在 GitLab 中创建项目为后续的测试效果,这里创建名为 my-project-test 的测试项目,登录页注册用户,管理员后台审核通过 , 为测试项目添加成员,设置项目成员的相应权限 。这里成员设置为 Maintainer 角色 。或创建用户组,把用户组赋予项目,并赋予相应权限 。
本地编写源代码 , 实现文件属性时间的读取功能,并签入到 GitLab 创建的 my-project-test 测试项目中 。如下图所示:
GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署

文章插图
到此,通过 GitLab 中提供的功能,实现了源代码的托管 。
GitLab-runner 安装这里 GitLab-runner 主要时通过 GitLab 的项目中 CI/CD 自定义的流水线步骤,来完成自动化部署的任务 。依据官网安装说明:https://docs.gitlab.com/runner/install/linux-manually.html
# 按官网的方式,做以下步骤:## 下载安装包到指定目录curl -L --output /usr/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"# 授予安装包可运行的权限chmod +x /usr/bin/gitlab-runner# 创建 GitLab-runner 的运行账号useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# 用指定账号安装 gitlab-runnergitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner# gitlab-runner 服务管理gitlab-runner start# 启动gitlab-runner stop# 停止

推荐阅读