环境说明
一台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 updatesudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-commoncurl -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 updatesudo apt-get install docker-ce如果要安装指定版本的,可以先查一下有哪些特定版本,然后再安装指定的版本
apt-cache madison docker-cesudo 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 dockersystemctl 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 restarthello 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-amd64sudo chmod +x /usr/local/bin/gitlab-runnersudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bashsudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runnersudo 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.rpmsudo yum install dotnet-sdk-3.0
准备aspnetcore项目
在项目根目录添加.gitlab-ci.yml文件,Dockerfile在项目目录中。
stages: - deploydeploy_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的目的。