【发布时间】:2016-07-18 04:59:07
【问题描述】:
是否有 Jenkins 插件可以通过 SSH 封装对 Tomcat 管理器的调用?
我的公司即将在“云端”部署一些应用程序,我们似乎要使用 Jenkins。问题是,我在将 Tomcat 管理器打开到 Internet 时感到不舒服。
或者,Jenkins 是否可以在部署之前打开与目标服务器的 VPN 连接?
【问题讨论】:
标签: tomcat jenkins jenkins-plugins
是否有 Jenkins 插件可以通过 SSH 封装对 Tomcat 管理器的调用?
我的公司即将在“云端”部署一些应用程序,我们似乎要使用 Jenkins。问题是,我在将 Tomcat 管理器打开到 Internet 时感到不舒服。
或者,Jenkins 是否可以在部署之前打开与目标服务器的 VPN 连接?
【问题讨论】:
标签: tomcat jenkins jenkins-plugins
你可以使用Publish Over SSH Plugin。
【讨论】:
也许你可以编写一个 Ansible 脚本来完成这项工作并在 Jenkins 中使用它。
【讨论】:
为什么不为tomcat启用SSL并在它前面放置一个反向代理?
server.xml 中的连接器看起来像这样:
-->
<Connector address="<localhost IP>" port="<port>" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
ciphers="<Cipher1>,
<Cipher2>,
<Cipher3>"
keystoreFile="<keystore directory>"
keystorePass="<keystore password>"
URIEncoding="UTF-8"
connectionTimeout="120000"
maxPostSize="-1"
maxKeepAliveRequests="-1"
/>
要部署您的战争文件,您可以使用 ant 在您的詹金斯脚本中执行的 xml 文件:
<project name="Deploy" default="deploy">
<path id="tomcat.class.path">
<fileset dir="<TomcatHome>/lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="<TomcatHome>/bin/bootstrap.jar"/>
<pathelement location="<TomcatHome>/bin/tomcat-juli.jar"/>
</path>
<target name="tomcat-start">
<echo>Stop Tomcat</echo>
<java classname="org.apache.catalina.startup.Bootstrap" fork="true" classpathref="tomcat.class.path">
<jvmarg value="-Dcatalina.home=<TomcatHome>"/>
</java>
<sleep seconds="15"/>
</target>
<target name="tomcat-stop" depends="tomcat-check-status" if="tomcat.started">
<echo>Start Tomcat</echo>
<java classname="org.apache.catalina.startup.Bootstrap" fork="true" classpathref="tomcat.class.path">
<jvmarg value="-Dcatalina.home=<TomcatHome>"/>
<arg line="stop"/>
</java>
<sleep seconds="15"/>
</target>
<target name="tomcat-check-status">
<condition property="tomcat.started">
<socket server="localhost" port="8000"/>
</condition>
</target>
<target name="deploy">
<sequential>
<antcall target="tomcat-stop"/>
<echo>Deploy to server</echo>
<copy todir="<TomcatHome>/webapps">
<fileset dir="<Current directory of WarFiles>">
<include name="*.war"/>
</fileset>
</copy>
<antcall target="tomcat-start"/>
</sequential>
</target>
</project>
这可能是您的管道脚本的样子:
dir("<directory of build.xml>") {
stage('deploy'){
def antHome = tool 'Ant <version>';
withAnt(installation: 'Ant <version>') {
bat "ant deploy"
}
}
}
}
【讨论】: