前后端分离的架构下,前后端分别的CI/CD全流程-后端-3

357 阅读3分钟

首先我们需要去配置一下插件

进入系统配置

Server Groups Center中配置好自己的远程服务器账号密码和公网ip

WX20220204-145229@2x.png

Publish over FTP下也配置好账号密码公网ip

WX20220204-145439@2x.png

注:这里Remote Directory下填写的是要传输到远程服务器的哪个目录下

修改完后我们进入全局工具配置,安装一下nodejs

WX20220204-145742@2x.png

WX20220204-145755@2x.png

接着我们需要添加一个全局凭证,用来连接远程服务器和jenkins

WX20220204-150112@2x.png

这里我们需要先进入docker中的jenkins容器

docker exec -it docker exec -it jenkinsci-blueocean /bin/bash

接着生成SSH keys

# 生成SSH keys
ssh-keygen -t rsa -b 4096
# 查看生成的SSH private key和public key
cd ~/.ssh
ls

id_rsa为SSH private key,id_rsa.pub为SSH public key

然后我们在远程服务器上配置SSH客户端的public key

将Jenkins服务器(SSH客户端)的SSH public key文件id_rsa.pub的内容追加到服务端对应用户的~/.ssh/authorized_keys文件末尾

如果~/.ssh/authorized_keys文件还不存在,则需要手工创建

确保~/.ssh文件权限为700,~/.ssh/authorized_keys文件权限为600,否则会导致SSH失败

设置文件权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

接着在jenkins的凭据配置上填写上private key

然后我们就可以在jenkins的项目配置中使用这个凭据了

WX20220204-151004@2x.png

中间我们去服务器上安装一下docker-compose,mac和windows上下载的docker桌面应用是自带docker-compose的,但是linux下载的docker不带docker-compose需要我们自行下载

  • 安装
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
  • 授权
chmod +x /usr/local/bin/docker-compose

接着,我们在构建中点击增加构建步骤,选择Send files over FTP

WX20220204-151856@2x.png

注:这里需要提前在远程服务器上安装并配置好vsftpd,这里配置比较简单,可自行搜索一下linux配置vsftpd

注:这里Remote directory下填写的目录是基于我们在ftp配置下填写的目录后拼接的目录,如 我ftp配置了 /usr/local/etc ,这里我写了 server/ , 那我们的文件就会传输到 /usr/local/etc/server/ 目录下 , 由于我们远程服务器的vsftpd配置的用户权限是在root文件夹下,所以我们的文件会传输到 /root/usr/local/etc/server/

接着添加构建步骤,选择远程执行命令

shell脚本中 我们先进入传输完的目录下,接着docker pull拉取依赖镜像,然后docker-compose up --force-recreate -d

#!/bin/bash
cd /root/usr/local/etc/server
docker-compose pull
docker-compose up --force-recreate -d

这里我们第一次构建建议先这样写,等第一次构建完后,我们不需要每次重新拉一遍sql镜像,所以我们就可以把docker-compose pull改写成docker build . 每次只构建一下koa项目镜像即可,如下:

WX20220204-152300@2x.png

接着我们就可以构建我们的第一次cicd了,构建完第一次后,mysql初始化了,之后我们只需要每次把koa的镜像删除,并重新构建一个koa镜像,然后再docker-compose up --force-recreate -d即可

这里我们在构建中点击增加构建步骤,选择远程执行命令

选择配置好的要连接的服务器,写好要执行的shell命令,然后我们需要把这个构建步骤拖拽到构建步骤的最上方,先执行这个步骤

WX20220204-151627@2x.png

这样下来我们后端的cicd就做完了