预期目标源代码管理借助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 安装【GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署】AlmaLinux官网:https://almalinux.orgGitLab的安装包有800+MB,在安装GitLab时,遇到系统boot分区空间不足的现象,这里需要将系统的 /boot 分区调整为1GB以上的空间 。下图为安装Linux时的分区设置 。
文章插图
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/bashGitLab 镜像库下载完成后的说明:1、镜像库文件 gitlab-jh.repo 保存于 /etc/yum.repos.d/ 目录中2、生成 gitlab-jh 镜像的缓存3、再安装 gitlab-jh如下图所示:
文章插图
安装 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 角色 。或创建用户组,把用户组赋予项目,并赋予相应权限 。
经验总结扩展阅读
- 2. 单主机 Elasticsearch 双节点或多节点集群环境部署
- Docker 部署Kibana
- GitLab + Jenkins + Harbor 工具链快速落地指南
- Docker | 部署nginx服务
- mac通过docker一键部署Nexus3
- mac通过docker一键部署MySQL8
- CentOS部署MySQL
- gin项目部署到服务器并后台启动
- centos7中配置java + mysql +jdk+使用jar部署项目
- 云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上