本地编写源代码,实现文件属性时间的读取功能,并签入到 GitLab 创建的 my-project-test 测试项目中 。如下图所示:

文章插图
到此,通过 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# 停止注册 GitLab-runner首先查看在GitLab页面的 菜单 > 设置 > CI/CD > Runner 中提到的内容 。如下图所示:

文章插图
接下来开始注册 GitLab-runner:
# 按照官网的描述,注册完成后,才可以使用GitLab-runner的实例# 启动后的注册命令,注册过程中,需要按提示填写几项内容gitlab-runner register注册过程中,填写的内容如下图所示:

文章插图
注册完成后,Runner 区域会多出一个 [可用的指定runner实例] 。
配置 GitLab-runner对 [可用的指定runner] 做一个简单的配置,这里设置自动部署的触发条件,以执行 CI/CD 中的流水线 。如下图所示:

文章插图

文章插图
以上场景:当有新的签入变更时,触发 CI/CD 中流水线的执行 。
Git 安装在自动化部署时,这里计划用 Git 工具来远程拉取源代码,以便于后续的编译发布动作 。
dnf install git -ydotnet 环境自动部署时,需要编译发布过程,所以这里安装 dotnet-sdk微软官方提供的镜像站:https://packages.microsoft.com/config/
# 首先安装微软镜像库,以便于从微软镜像站中安装所需的 dotnet-sdk 等# 这里选用与环境适配的软件库 RHEL8版 下载到 /etc/yum.repos.d/ 中curl -O /etc/yum.repos.d/ https://packages.microsoft.com/config/rhel/8/prod.repo# 重建镜像库缓存dnf clean packages && dnf clean all && dnf makecache## 先安装运行 dotnet 时必要的 libicu 工具dnf install libicu -y# 安装适合于开发环境的 dotnet-sdk-6.0(SDK版支持测试、编译、发布、运行等)dnf install dotnet-sdk-6.0 -y自动化部署配置首先自定义一个存放部署文件的目录,假设创建 /opt/gitlab-devops-app 作为部署的目录 。
# 安装 gitlab-runner 时,已经创建了名为 gitlab-runner 的用户名# 后续会用 gitlab-runner 在此做拉取源代码、编译、发布等动作# 这里授予 gitlab-runner 的所属用户对部署文件夹的操作权限# 赋予所属用户chown -R gitlab-runner:gitlab-runner /opt/gitlab-devops-app# 并授予可执行权限chmod -R +x /opt/gitlab-devops-app
经验总结扩展阅读
- 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实战-上