利用PasteSpider实现类似Jenkins的功能,让你的2G服务器也可以飞起 ...

打印 上一主题 下一主题

主题 583|帖子 583|积分 1749

大概你打仗过Jenkins,
在我理解就是拉取源码,然后构建成镜像,末了启动容器!
但是这个功能对于小内存的服务器来说就是奢望了!
今天介绍一个新版本,把你这个遗憾弥补下!
在PasteSpider中,也是支持拉取源码,然后编译发布的!!!
以下案例利用svn作为源码管理
假如你利用git作为源码管理,原理差不多
以我的代码为例
dotnet 6.0 + Linux AliBaba + PasteSpider v24.07.20.01
1.按照论坛的方式安装PasteSpider
一键安装PasteSpider
2.在服务器linux上安装dotnet
这个可以查看微软官方网站
https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-scripted-manual#scripted-install
安装完成后执行下令监测下
  1. dotnet --info
复制代码
 SVN/GIT的配置

3.打开PasteSpider的管理端,找到菜单

以我的为例,我为项目

假如你启用了docker registry的私人仓库,则上面的配置中仓储那边要对应的选择,选择哪个要看你所选的服务
上面中要注意的是 克隆编译下令
我的如下
  1. #删除旧的源码
  2. rm -rf /spider/source/blog/tool/
  3. #创建文件夹,可能文件夹不存在
  4. mkdir -p /spider/settings/blog/tool/
  5. #删除旧的配置文件,这一步看实际情况,因为拉取源码会把所有代码都覆盖
  6. rm -rf /spider/settings/blog/tool/appsettings.json
  7. #复制配置文件,留着备用
  8. cp -f /spider/publish/blog/tool/appsettings.json /spider/settings/blog/tool/appsettings.json
  9. #从服务端拉取源码,这个第一次的时候一般会失败,所以要直接去服务端试着拉取代码
  10. svn checkout svn://your_svn_ip:your_svn_port/PasteSoft/PasteSoft --username=your_svn_name --password=your_svn_password /spider/source/blog/tool/
  11. #构建命令,不同语言不一样处理,目的就是发布到文件夹
  12. dotnet publish /spider/source/blog/tool/ -c release -r linux-x64 --self-contained false -o /spider/publish/blog/tool/
  13. #删除拉取的配置文件
  14. rm -rf /spider/publish/blog/tool/appsettings.json
  15. #从刚刚备份的配置文件复制到发布文件夹
  16. cp -f /spider/settings/blog/tool/appsettings.json /spider/publish/blog/tool/appsettings.json
  17. #后续的动作由系统接管,其实就是构建镜像和升级!
复制代码
 
以上需要注意的地方有
 目次说明

/spider/这个是工作目次,就是PasteSpider的工作目次,对于宿主服务器的路径而言的,默认是/spider/
这个目次下有几个功能文件夹
source 表现用于存放svn拉取的源码的
publish 表现用于存放服务编译后(发布)的文件的
settings 用于存放项目服务的特别文件的,这个看需求
克隆编译下令 的目的就是拉取源码到source文件夹,然后通过对应语言的发布下令,发布到publish文件夹
功能文件夹下还有几层 
/spider/source/blog/tool/为例
spider是PasteSpider的工作目次
source是功能文件夹 表现源码
blog表现这个项目的代码
tool表现这个服务的代码
 下令说明

下令一行一条,每行之间没有上下关系,也就是没有相对路径的说法,你得写全路径
假如是#开头的,则这一行下令不会被执行,是注释
 更新说明

在配置的下方有一个表现,实在是多少个环境就多少行,然后注意后面那个下令开头
意思是源码提交的备注是这个字母开头的,才会触发升级,比如我的配置是
update 的开头 就可以触发
验证密钥注意下,下面的步骤4要利用
 4 post-commit

假设你一键有一个SVN代码管理器的服务端,则参考如下文章进行配置并设置post-commit的hook文件
https://soft.pastecode.cn/Article/1
精华部分实在就在
post-commit的内容上
  1. #REPOS="$1"
  2. #REV="$2"
  3. export LANG=zh_CN
  4. MESSAGE=$(svnlook log -r $2 $1)
  5. curl -d "token=your_token&repos=$1&version=$2&info=$3&info=$MESSAGE" "https://spider.abc.com/api/spider/Code/svncommit"
复制代码
假设访问https://spider.abc.com/page/index.html可以访问到我的PasteSpider管理端,则有如上配置
注意上面的your_token,和我们3步骤配置的验证密钥需要同等,一会有个地方要用
上面的文件保存好了后,注意修改post-commit的执行权限,需要能够执行,否则是不访问效的
 
 5检查流程

以上按照要求配置后,特别注意的是下令相关的内容
服务器是否支持相关的下令
是否支持curl 这个用于推送信息到PasteSpider的接口上的
是否支持dotnet 这个要看你是啥语言,不同语言的编译发布下令是不一样的
是否支持svn 这个是拉取源码的,比如我这个服务器上找不到这个下令,就利用yum -y install svn 不同服务器要基于自己的去安装
一些登岸操作是否已经执行
比如svn这个拉取代码的操作,一般是要求第一次执行,会有一个提示,大致意思是登岸,授权啥的,你可以手动执行下
 6.准备测试

以上信息保存后,我们来提交一下代码!

注意看我的备注是update打头的,这个和我的步骤3的相对应!
我的启动前的资源利用情况

提交后,到PasteSpider的管理端的使命列表查看

在接收到对应的post-commit的推送后,会先执行镜像的构建,然后会基于配置执行升级!
或者是等候关照,比如我的

当然,假如执行失败了,则需要到使命的具体中查看,具体哪个下令失败了,比如我从前的

打开后,查看这个使命里面的子使命,哪条执行失败!

点击具体,会看到具体执行的下令,你可以把这个下令自己复制到服务器上去执行,看看为啥错误!
基于使命具体的反馈,假如有错误的修正后重新提交尝试!
升级后

多的部分,就是克隆下令后的编译发布花费的,利用ps -aux 可以查看到对应多出来的

查过资料,一段时间后这个会自己退出!
以是资源占用是非常划算的!
多测试几次,发现时间照旧有差的!

 写在后面

实在克隆代码执行完成后,走的就是默认的服务的发布模式(就是开辟者在开辟机上发布项目到文件,然后把发布后的项目文件同步到服务器上,然后服务器基于发布的文件执行镜像的构建和对应服务的发布!)
也就是说克隆代码执行完成后,其他的步骤执行的逻辑就和发布模式同等了
比如会运行几个容器
端口配置
IP配置
nginx配置等

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表