『贴Builder』
最新文章
热门话题
用户问答
lao人言
「搜索」
PasteSpider
一款更加适合开发人员的微服务(容器)发布管理工具

节省资源

极小的运行资源消耗,还支持一拖多运行,运行内存甚至低至100MB!

安全运行

和业务服务没有层级上的关联,哪怕PasteSpider停止运行也不会影响你的业务服务运行

简单易上手

一键安装,图形操作点点点即可完成操作,附属服务的支持原汁原味,简单易上手

环境隔离

支持拆分多环境运行,工厂,测试两不误,还可以根据环境配置适应不一样的配置信息

适用功能一应俱全

从项目角度进行服务容器管理,支持自动升级,扩容,缩减,状态报表,键值配置,自动路由等

支持Git/Svn代码管理

通过配置支持服务环境级别的自动提交构建,一键提交代码后即可自动发布服务和路由等

PasteSpider的运行条件之SVNManage中Hook的配置
尘埃 2023-05-01 1649 94 1
启用Spider中的svnhook!

如果你的svn的服务端是安装在window服务器上的,则可以在Repositories对应的项目中右键选择Properties

然后选择第二个选项卡Hooks

双击Post-commit hook

然后在输入框中输入如下的代码

@echo on
:: 将该文件放置到svn repository的hooks目录,如D:\subversion\test\hooks
:: 1. 名字一定要是post_commit
:: 2. 修改case里面的curl为easyops应用流水线的svn钩子

SET REPOS=%1
SET LOGFILE=%REPOS%\post-commit.log
SET REV=%2
SET TXN_NAME=%3


::UUID
for /f "delims=" %%t in ('svnlook uuid %REPOS%') do set UUID=%%t

::AUTHOR
for /f "delims=" %%t in ('svnlook author %REPOS% -r %REV%') do set AUTHOR=%%t

::LOG
for /f "delims=" %%t in ('svnlook log %REPOS% -r %REV%') do set LOG=%%t

::DATE
for /f "delims=" %%t in ('svnlook date %REPOS% -r %REV%') do set DATE=%%t

::echo %REPOS% %REV% %TXN_NAME% %UUID% %LOG% >> %LOGFILE%

::==================================================
::CHANGE
for /f "delims=" %%i in ('svnlook changed %REPOS% -r %REV%') do set CHANGE=%%i

::TYPE
for /f "tokens=2 delims= " %%t in ("%CHANGE%") do for /f "tokens=1 delims=/" %%c in ("%%t") do set TYPE=%%c

::TAG
for /f "tokens=1 delims= " %%t in ("%CHANGE%") do set TAG=%%t

::======================================================

echo "path:%REPOS% version:%REV% txnname:%TXN_NAME% uuid:%UUID% comment:%LOG% change:%CHANGE% type:%TYPE% tag:%TAG%" >> %LOGFILE%

:: 按应用需求,在不同的类型里面填入easyops的svn钩子url,如果不区分分支,则在*)里面填

::将win下路径的 \ 替换为 \\ 。不然会出现格式问题
set REPOS=%REPOS:\=\\%
set REV=%REV:\=\\%
set TXN_NAME=%TXN_NAME:\=\\%
set UUID=%UUID:\=\\%
set TAG=%TAG:\=\\%
set AUTHOR=%AUTHOR:\=\\%
set DATE=%DATE:\=\\%
set TYPE=%TYPE:\=\\%
set LOG=%LOG:\r=_%
set LOG=%LOG:/r=_%
set LOG=%LOG:\n=_%
set LOG=%LOG:/n=_%

::generate_post_data
set post_data="{\"token\": \"yourservicesvntoken\",\"repos\": \"%REPOS%\",\"info\":\"%LOG%\",\"txn_name\":\"%TXN_NAME%\",\"uuid\":\"%UUID%\",\"type\":\"%TYPE%\",\"tag\":\"%TAG%\",\"author\":\"%AUTHOR%\",\"date\":\"%DATE%\"}"

echo "begin post info" >> %LOGFILE%

curl -H "Content-Type: application/json" -X POST -d %post_data% "http://www.yourPasteSpider.com/api/Code/svncommit"

echo "posted!" >> %LOGFILE%
::设置curl文件的位置
::set curl=C:\curl.exe
::%curl% -i -X POST -H "Content-Type: application/json" --data %post_data% %url%

上述的代码中注意替换 yourservicesvntoken和http://www.yourPasteSpider.com替换成你自己的。

如果你的svn是安装在Linux中的,则可以参照如下的进行:

本次环境 centos7 yum cat vim等


1.安装svn服务端


yum install subversion

2.创建预用文件夹 /home/svn/project /home/svn/project/project1 /home/svn/project/project2,主目录为/home/svn/project,至于后面的project1 project2为仓库项目,后续可以再追加


mkdir -p /home/svn/project/project1
mkdir -p /home/svn/project/project2

3.创建仓储项目


svnadmin create /home/svn/project/project1
svnadmin create /home/svn/project/project2

4.配置账号,先把账号文件从/home/svn/project/project1/conf/passwd复制到/home/svn/project/passwd


cp /home/svn/project/project1/conf/passwd /home/svn/project/passwd

5.追加账号,也就是修改/home/svn/project/passwd的文件内容。比如添加账号user1密码123456 账号user2密码123456


vim /home/svn/project/passwd

按照里面的案例添加账号密码,中间用=号隔开,一组一行。录入退出保存(i->输入->Esc->ZZ)


user1=123456
user2=123456

6.配置权限,也就是修改/home/svn/projcet/authz的文件内容。说明如下:


[groups]#分组
# harry_and_sally = harry,sally#harry_and_sally为分组名称 harry,sally为2个用户名
# harry_sally_and_joe = harry,sally,&joe
 
# [/foo/bar]#相对路径下的权限
# harry = rw
# &joe = r
# * =#留空表示其他账号无任何权限
 
# [repository:/baz/fuz]#仓库下的某一个文件夹?
# @harry_and_sally = rw#rw表示可读可改
# * = r#r表示读取权限

比如我这一次编写内容为:表示用户user1有所有仓储的读取权限,user2只有读取权限


[/]
user1 = rw
user2 = r

修改完成后退出保存(i->输入->Esc->ZZ)


7.修改服务配置内容 /home/svn/project/project1/conf/svnserve.conf打开如下配置信息


anon-access = none #匿名用户不可读 read匿名用户可以读取
auth-access = write #授权用户可写
password-db = ../../passwd #使用哪个文件作为账号文件
authz-db = ../../authz #使用哪个文件作为权限文件
realm = /home/svn/project # 认证空间名,版本库所在目录

上述中,由于我们要调用/home/svn/project/passwd文件和/home/svn/project/authz文件,所以路径修改了,调用上一层,上一层的passwd和authz文件。


8.把7中修改的svnserve.conf文件复制到/home/svn/project/project2/conf/svnserve.conf,后续创建多仓库的话这个文件都要复制到对应的仓库下面去。


cp /home/svn/project/project1/conf/snvserve.conf /home/svn/project/project2/conf/snvserve.conf

9.修改hooks文件,用于提交后推送消息给PasteSpider告知有新的版本提交了。复制/home/svn/project/project1/hooks/post-commit.tmpl为/home/svn/project/project1/hooks/post-commit


cp /home/svn/project/project1/hooks/post-commit.tmpl /home/svn/project/project1/hooks/post-commit

编辑修改/home/svn/project/project1/hooks/post-commit,提交后的内容推送到PasteSpider的接收地址中:比如我的PasteSpider的对外地址为http://192.168.2.39:18888


#REPOS="$1"
#REV="$2"
export LANG=zh_CN
MESSAGE=$(svnlook log -r $2 $1)
curl -d "token=your_token&repos=$1&version=$2&info=$3&info=$MESSAGE" "http://www.yourPasteSpider.com/api/spider/Code/svncommit"
#set post_data="{\"token\": \"yourservicesvntoken\",\"repos\": \"$1\",\"info\":\"$MESSAGE\",\"txn_name\":\"\",\"uuid\":\"\",\"type\":\"\",\"tag\":\"\",\"author\":\"\",\"date\":\"\"}"
#curl -H "Content-Type: application/json" -X POST -d %post_data% "http://www.yourPasteSpider.com/api/Code/svncommit"

上面注意修改自己的token内容,这个在PasteSpider的后台的源代码仓库管理中有设置接口密钥。然后把/home/svn/project/project1/hooks/post-commit复制一份给/home/svn/project/project2/hooks/post-commit,如果他们的token不一样,则需要修改下。

上面的命令注意替换对应的字符

your_token表示你在PasteSpider中svn配置的验证密钥

http://www.yourPasteSpider.com你的PasteSpider的访问域名地址



然后是给post-commit文件执行权限,2个项目都要


chmod 755 /home/svn/project/project1/hooks/post-commit
chmod 755 /home/svn/project/project2/hooks/post-commit

10.启动svn服务,由于我用了自定义端口,默认端口3690


svnserve -d -r /home/svn/project --listen-port 12100

11.如果启动后要停止咋办?查找进程命令


ps -ef | grep svnserve

找到后面有 svnserve -d -r字眼的那一行,看下第二列数字是多少比如我的11230,结束这个进程


kill -9 11230

这样svnserve服务就停止了。


12.服务运行后,比如我可在客户端上使用svn://192.168.2.39:12100/project1链接上project1的仓库管理,进行提交获取checkout等。


ps:对应仓库链接后,进行一个提交,看看PasteSpider后台是否接收到。默认约束提交的备注中update开头,则会触发对应的镜像打包升级服务。如果有配置的话。



评论列表
尘埃

还是用客户端方便,就点击几下就可以了!

折梅问雪
克隆编译命令的内容要注意
1.一行一个命令
2.每行的执行是隔开的,所以没有相对文件夹的说法
3.整个命令的作用是从远端拉取源码,然后发布到指定的文件夹!也就是拉取到{workdir}/source/{project}/{service}/
4.然后基于自己开发语言进行发布到{workdir}/publish/{project}/{service}/
5.然后系统就是接手docker build 和后续的其他命令了!
尘埃
94 1649 1
快捷注册
最新动态
  • 132.****.102 正在查看 PasteSpider中关于Nginx的配置,安装PasteSpider之后查阅 !
  • 74.****.134 正在查看 PasteBuilder的进阶用法 !
  • 101.****.91 正在查看 PasteSpider更新摘要 !
  • 157.****.145 正在查看 PasteSpider中关于项目,服务,环境,文件模式等对象的说明 !
  • 3.****.74 正在查看 PasteSpider之appsettings.json的说明 !
  • 140.****.82 正在查看 PasteTemplate之接口的授权实现,非JWT方式 !
  • 199.****.8 正在查看 PasteSpider的测试环境之在Docker中安装centos7并设定SSH的密码 !
  • 195.****.113 正在查看 PasteSpider更新摘要 !
  • 44.****.58 正在查看 PasteSpider中关于项目,服务,环境,文件模式等对象的说明 !
  • 40.****.110 正在查看 PasteTemplate之接口的授权实现,非JWT方式 !
  • 184.****.35 正在查看 Redis的安装 !
欢迎加入QQ讨论群 296245685 更新记录 [PasteSpider]介绍 @2022-2023 PasteCode.cn 版权所有 ICP证 闽ICP备2021013869号-2