2010-01-14

如何剥离CruiseControl内置的Web控制台

背景介绍

出于各自不同的考虑:
  • 启用 Apache Tomcat 内置的 Java EE 安全性管理机制,以加强这些 Web 控制台的管理
  • 采用比 Jettery (cc内置的Web容器)  更强大的 Web 容器,使得 CruiseControl 构建循环不会受到 Web 控制台用户的影响。因为默认情况下,CruiseControl构建循环与宿主 Web 控制台的 Jetty 处于同一进程中。
CI集成人员需要将CruiseControl内置的两个Web控制台( http://localhost:8080/cruisecontrol/ 和 http://localhost:8080/dashboard/ ) 剥离出来,并运行在其他 Java EE 容器中,比如 Tomcat等。

移植Web 控制台到 Apache Tomcat 6.0.20 的步骤

如果你想用Debian 安装的tomcat6部署dashboard,请参照 剥离CruiseControl dashboard控制台到Debian安装的tomcat6上 1、下载 CruiseControl 和 tomcat-6.0.20 安装包,并分别解压(这是我放置解压目录的位置 /work/cruisecontrol 和 /work/tomcat )。 2、复制 /work/cruisecontrol/webapps/dashboard 到 /work/tomcat/webapps下
/work/tomcat/webapps> cp -a /work/cruisecontrol/webapps/dashboard .
3、修改 /work/cruisecontrol/dashboard-config.xml 文件,下面是修改后的文件(粗体部分是修改的内容)
<dashboard>
 <buildloop
   logsdir="/work/cruisecontrol/logs"
   artifactsdir="/work/cruisecontrol/artifacts"/>
 <features allowforcebuild="true"/>
 ......
</dashboard>
4、修改CruiseControl构建循环使用的 config.xml 配置文件。(粗体部分是增加的内容)
<cruisecontrol>
 <dashboard url="http://localhost:8080/dashboard" postinterval="5"/>
  .......
</cruisecontrol>
5、告诉 tomcat dashboard-config.xml 文件的位置 打开 /work/tomcat/bin/catalina.sh,添加这么一行(粗体部分)
"$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS
  -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"
  -Dcatalina.base="$CATALINA_BASE"
  -Dcatalina.home="$CATALINA_HOME" 
  -Ddashboard.config=/work/cruisecontrol/dashboard-config.xml
  -Djava.io.tmpdir="$CATALINA_TMPDIR"
  org.apache.catalina.startup.Bootstrap "$@" start
  >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
还有一种最简单的方法,直接将 dashboard-config.xml 复制到 /work/tomcat/bin/ 目录下 6、该步骤可选。既然不打算用内置的Jetty容器,我们就要手动去掉该配置。 打开 /work/cruisecontrol/cruisecontrol.sh 文件,将 "-webport" 参数以及其值去掉 到现在为止,我们已经成功完成了/dashboard Web 控制台的移植工作。
blog comments powered by Disqus