Gitlab Runner实现CI/CD自动化部署asp.net core应用

 

环境说明

  一台git服务器(192.168.169.7),安装gitlab,docker。

  一台web服务器(192.168.169.6),安装git,gitlab runner,docker,dotnet sdk。

   为了方便讲述,给两台服务器取个别名吧,7酱和6酱😄

 

git服务器准备

安装gitlab

   gitlab提供多种安装方式,7酱是Ubuntu系统😄,虽然docker方式简直不要太简单,但是还是记录一下Ubuntu下普通方式安装gitlab。

  安装依赖项

sudo apt-get install -y curl openssh-server ca-certificates

  使用postfix来发邮件通知

sudo apt-get install -y postfix

  安装gitlab包

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

  安装

sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce

  虽然有域名,但是懒得配置,url就填写ip,比如http://192.168.169.7:8092,安装之后第一次访问这个地址的用户就是管理员账号了。

邮件配置,注意配置的邮箱要开启smtp

 

安装docker

  如果有旧版本,先卸载

sudo apt-get remove docker docker-engine docker.io

  一些前提设置

sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

  开始安装docker

sudo apt-get update

sudo apt-get install docker-ce

  如果要安装指定版本的,可以先查一下有哪些特定版本,然后再安装指定的版本

apt-cache madison docker-ce

sudo apt-get install docker-ce=5:19.03.1~3-0~ubuntu-bionic docker-cd-cli=5:19.03.1~3-0~ubuntu-bionic containerd.io

  设置自动启动docker

systemctl enable docker
systemctl start docker

  如果不是root用户,添加当前用户到docker用户组

sudo usermod -aG docker $USER

  [可选项],设置国内镜像,通过修改docker配置文件,添加register-mirrors键值。如果没有daemon.json文件,请新增。

sudo vi /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn","https://cr.console.aliyun.com"
    ]
}

  重启docker

sudo service docker restart

  hello world from docker

docker run --rm hello-world

 

web服务器准备

  6酱是CentOS😄

安装git

sudo yum install -y git

配置git账号

  过程:略

安装gitlab runner

  首先在gitlab仓库的设置中找到Runners选项,可以看到设置runner的步骤。

  安装gitlab-runner。这里以二进制文件方式安装,其他安装方式自行选择。

sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

sudo chmod +x /usr/local/bin/gitlab-runner

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

sudo gitlab-runner start

  注册gitlab runner,按照提示,一步一步填写。

sudo gitlab-runner register

   提示注册成功,然后在项目仓库runners这里可以看到刚刚激活的runner。

  点击可以查看runner详情,最好将【Can run untagged jobs】改为【Yes】,否则提交代码的时候只有tag才会触发构建任务。

 

 

 安装dotnet sdk

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

sudo yum install dotnet-sdk-3.0

 

准备aspnetcore项目

  在项目根目录添加.gitlab-ci.yml文件,Dockerfile在项目目录中。

stages:
  - deploy
deploy_job:
  stage: deploy
  only: 
    - master
  script:
    - cd /home/gitproject
    - rm -rf /home/gitproject/gitlabrunner
    - git clone git@192.168.169.7:rookies/gitlabrunner.git
    - cd ./gitlabrunner
    - dotnet build --configuration Release 
    - rm -rf /home/dockerproject/gitlabrunner
    - docker kill gitlabci
    - docker rm gitlabci
    - docker rmi gitlabrunnerimage
    - dotnet publish -c Release --output /home/dockerproject/gitlabrunner
    - cd /home/dockerproject/gitlabrunner
    - docker build -t gitlabrunnerimage .
    - docker run -d -v /home/dockerproject/gitlabrunner:/app -p 3126:3126 --name gitlabci --restart always gitlabrunnerimage

 

  pipeline任务构建过程

  本次由于网络原因,构建失败,但是通过此番操作,可以实现利用gitlab runner来达到CI/CD的目的。

 

 
posted @ 2019-12-15 16:27  原来是李  阅读(1294)  评论(4编辑  收藏  举报