从Jenkins在Servicemix中部署捆绑包

时间:2016-02-25 08:12:51

标签: jenkins jenkins-plugins apache-servicemix

我正尝试在Jenkins的Servicemix部署一个捆绑包。用例是当我在本地进行任何更改时,Jenkins构建它并在servicemix(在云上运行)中将其部署为bundle。

我可以在servicemix本地部署捆绑包,但工作正常,但我现在正试图找到一种方法将其从jenkins部署到远程Servicemix

有没有人试过这个?

2 个答案:

答案 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 执行客户端。