注册 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自动化部署 - CI/CD 流水线配置在CI/CD菜单的编辑器中 , 先选择对应的项目分支,再配置流水线按钮,自动生成名为 .gitlab-ci.yml 的文件于此项目的根目录;在这里,流水线配置文件 .gitlab-ci.yml 决定了自动化部署的步骤过程 。起初GitLab会给出一个配置模板,这里将配置好的内容如下:
# 总流程 - 按序运行# 这里自定义了七个步骤,可按实际情况自定义名称和顺序,通过命令完成部署stages: # List of stages for jobs, and their order of execution - stop # Job1:停止原有站点运行 - clear # Job2:清除原有部署文件 - clone # Job3:远程克隆源代码 - test # Job4:单元测试 - build # Job5:编译源代码 - publish # Job6:发布项目 - deploy # Job7:重新启动站点运行#### 以下每个作业(步骤节点)对应上述总流程的步骤名称,如下示例每个节点区块格式:# {自定义作业名称}:# stage: {对应上述总流程定义的作业节点名称}# script:# - {按序单行要执行的命令}# - {按序单行要执行的命令}#### Job1:停止原有站点运行stop-job: stage: stop script: - ps -ef | grep Web.dll | grep -v grep | awk '{print $2}' | xargs -r kill -9 && true=0 || false=1## Job2:清除原有部署文件clear-job: stage: clear script: - cd /opt/gitlab-devops-app/ - rm -rvf my-project-test## Job3:远程克隆源代码clone-job: stage: clone script: - cd /opt/gitlab-devops-app/ - git clone -b {分支名称} http://{用户名}:{密码}@{ServerIP}/{project-url}/my-project-test.git## Job4:单元测试;对克隆下来的源代码进行操作unit-test-job: stage: test script: - cd /opt/gitlab-devops-app/my-project-test/Web/ - dotnet test Web.csproj## Job5:编译源代码build-job: stage: build script: - cd /opt/gitlab-devops-app/my-project-test/Web/ - dotnet build --configuration Release## Job6:发布项目publish-job: stage: publish script: - mkdir /opt/gitlab-devops-app/my-project-test/publish/ - cd /opt/gitlab-devops-app/my-project-test/Web/ - dotnet publish --configuration Release --no-build --output ../publish/## Job7:重新启动站点运行deploy-job: stage: deploy environment: production script: - cd /opt/gitlab-devops-app/my-project-test/publish/ - nohup dotnet Web.dll --urls http://*:5000 > /dev/null 2>&1 &
推荐阅读
- 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实战-上