此处进行迭代的应用是ruoyi后端jar包,用来模拟真实的发包上线。

配置:虚拟机系统:CentOS7.7 四核 八G

       K8s版本:1.7.7

   Kuboard版本:V2.0.0.5

通过Docker安装SPUG。(参考官方文档:Docker安装 | Spug

yum install -y yum-utils

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce docker-compose-plugin

systemctl enable docker

systemctl start docker

 编辑compose

vi docker-compose.yml

version: "3.3"

services:

  db:

    image:registry.cn-hangzhou.aliyuncs.com/openspug/mariadb:10.8.2     container_name: spug-db

    restart: always

    command: --port 3306 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

    volumes:

      - /data/spug/mysql:/var/lib/mysql

    environment:

      - MYSQL_DATABASE=spug

      - MYSQL_USER=spug

      - MYSQL_PASSWORD=spug.cc

      - MYSQL_ROOT_PASSWORD=spug.cc

  spug:

    image:registry.cn-hangzhou.aliyuncs.com/openspug/mariadb:10.8.2     container_name: spug

    privileged: true

    restart: always

    volumes:

      - /data/spug/service:/data/spug

      - /data/spug/repos:/data/repos

    ports:

      # 如果80端口被占用可替换为其他端口,例如: - "8000:80"

      - "8000:80"

    environment:

      - MYSQL_DATABASE=spug

      - MYSQL_USER=spug

      - MYSQL_PASSWORD=spug.cc

      - MYSQL_HOST=db

      - MYSQL_PORT=3306

    depends_on:

      - db

docker compose up -d#启动容器

docker exec spug init_spug admin spug.cc#初始化

通过地址的8000端访问页面。

点击主机管理,添加一台虚拟机,配置如图.

 ph40.png

点击到“发布配置”,新增一个应用。

 ph41.png

此时我们回到kuboard页面,在后端容器部署页面找到CI/CD.

ph42.png 

将CICD集成中的curl复制下来,在虚拟机中创建一个shell脚本,以实现自动化部署。

vim ci.sh

 

#!/bin/bash

export ruoyi_t=$1 #执行脚本命令后的第一个指令键入这里。

curl -X PATCH \

  -H "content-type: application/strategic-merge-patch+json" \

  -H "Authorization:Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkFtcWctc0hpWmlaUHJhaTBWdjZoU2xJYldhaHNGX19nNWxWbVdJcVBUSFUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tNTUybWwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNGJmMmQzZTQtMDdkNS00ZjRkLTg4MTAtNDFkMmUxYmU5MTNlIiwic3ViIjoic3lzdGVtOnNlcnZY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.Xfq7YfYcbq-90gaGXLN-W0W1AOQJuIG3ySFR9q38XrDtbgxagx_SoGKunLz5skApMaVQ_tprBpH58KRVY5kckme6FHgMFti5TciTxL3-VrMOdDbv5m8TEtjJXKPXBrUHE2haxheY1bmlLZHQCmyLicQCsQgeS2a1GIS72MurzVpJJCTDGakNCowknsNtMObGUwZAyov-Wi9VcYKLS9sbNa6fUWr3gY9EwrQ1ZY-VMuwE1-_GKUfjoh53Udglo5tzTbILwMtX3qVbEMiBSwG0e85eTuxaT9DZVuheXmOEqfGKrXcQ5DH1afcKzsGyYjDh5VppjAysAXmt6Oi5OgxPbQ" \

  -d '{"spec":{"template":{"spec":{"containers":[{"name":"server","image":"ruoyi-t:'$ruoyi_t'"}]}}}}' \

  "http://192.168.149.129:32567/k8s-api/apis/apps/v1/namespaces/ruoyi/deployments/server"

点击新建发布,选择自定义发布。

ph44.png

 ph45.png

本地执行动作指的是在部署SPUG的服务器上执行的操作

数据传输是从部署SPUG的服务器传输到目标服务器

目标主机执行动作是在发包的服务器上进行的操作

此处选择从本地上传jar包

执行内容包括镜像构建和脚本执行

点击“发布申请”,“新建申请”,根据要求填写和选择。

ph46.png

点击“确定”后,在页面点击“发布”。

ph48.png

回到kuboard查看,

ph49.png 

发现容器内的镜像已经被替换