我正尝试在Jenkins的Servicemix
部署一个捆绑包。用例是当我在本地进行任何更改时,Jenkins构建它并在servicemix
(在云上运行)中将其部署为bundle。
我可以在servicemix
本地部署捆绑包,但工作正常,但我现在正试图找到一种方法将其从jenkins
部署到远程Servicemix
。
有没有人试过这个?
答案 0 :(得分:2)
如果您安装了jolokia软件包,则可以通过Rest调用使用JMX。
{
"type":"EXEC",
"mbean":"org.apache.karaf:type=bundle,name=root",
"operation":"install(java.lang.String,boolean)",
"arguments": ["mvn:${project.groupId}/${project.artifactId}/${project.version}", true]
}
为了在jenkins中使用这个,我开发了一个小Bus pattern,可以像下面这样使用:
<plugin>
<groupId>de.nierbeck.javaland.tools</groupId>
<artifactId>karaf-deployer-maven-plugin</artifactId>
<configuration>
<url>http://192.168.59.103:8181/jolokia/</url>
<jsonInstall>
{
"type":"EXEC",
"mbean":"org.apache.karaf:type=bundle,name=root",
"operation":"install(java.lang.String,boolean)",
"arguments": ["mvn:${project.groupId}/${project.artifactId}/${project.version}", true]
}
</jsonInstall>
<user>karaf</user>
<password>karaf</password>
<skip>false</skip>
</configuration>
</plugin>
答案 1 :(得分:0)
您的 Jenkins 是否可以访问 ServiceMix 的 ssh 控制台(默认端口:8101),如果是,我建议通过此通道发送命令。
另一种可能是使用 smx 客户端 ( ${smx_home}/bin/client ) 并上传要执行的脚本,然后从 Jenkins 通过 sh
执行客户端。