线上rundeck从2.6.9升级到2.6.10后无法启动,日志也没有打印任务有用的信息,一头雾水。
只有从配置文件开始着手,一看还真发现了一点不同。
我是yum源升级的,在rundeck的配置目录/etc/rundeck下发现profile文件被升级了,对比了一下新产生的文件与旧文件:
-rw-r--r-- 1 rundeck rundeck 2907 Nov 15 09:45 profile
-rw-r--r-- 1 root root 2038 Nov 15 09:44 profile2016-11-15
-rw-r----- 1 rundeck rundeck 2907 Nov 11 06:25 profile.rpmnew
发现新文件profile.rpmnew添加了好多新的东西。
而启动时还是使用老的配置文件,怀疑是此文件造成启动影响。
于是备份老porfile,使用rpmnew文件替换。
不出所料,成功启动。
后来又翻看github,发现有人也已经发现这个问题了。
https://github.com/rundeck/rundeck/issues/2164
新添加了一个调度一次的按键,同时添加了自定义标题栏配置啥的,我修改了下,不过我的任务有点多,300多个,而且许多任务执行要好几个小时甚至几天,所以暂时不能重启看效果,好像rundeck-config.properties的配置修改后必须重启才能生效,这个有点不方便啊,毕竟线上的东西不可能经常性重启。
(添加了一个run job later )
只有从配置文件开始着手,一看还真发现了一点不同。
我是yum源升级的,在rundeck的配置目录/etc/rundeck下发现profile文件被升级了,对比了一下新产生的文件与旧文件:
-rw-r--r-- 1 rundeck rundeck 2907 Nov 15 09:45 profile
-rw-r--r-- 1 root root 2038 Nov 15 09:44 profile2016-11-15
-rw-r----- 1 rundeck rundeck 2907 Nov 11 06:25 profile.rpmnew
发现新文件profile.rpmnew添加了好多新的东西。
而启动时还是使用老的配置文件,怀疑是此文件造成启动影响。
于是备份老porfile,使用rpmnew文件替换。
不出所料,成功启动。
点击(此处)折叠或打开
- [rundeck@sys rundeck]$ diff -bBr profile2016-11-15 profile.rpmnew
- 1,2c1,17
- RDECK_BASE=/var/lib/rundeck
- export RDECK_BASE
- ---
- > RDECK_INSTALL="${RDECK_INSTALL:-/var/lib/rundeck}"
- > RDECK_BASE="${RDECK_BASE:-/var/lib/rundeck}"
- > RDECK_CONFIG="${RDECK_CONFIG:-/etc/rundeck}"
- > RDECK_SERVER_BASE="${RDECK_SERVER_BASE:-$RDECK_BASE}"
- > RDECK_SERVER_CONFIG="${RDECK_SERVER_CONFIG:-$RDECK_CONFIG}"
- > RDECK_SERVER_DATA="${RDECK_SERVER_DATA:-$RDECK_BASE/data}"
- > RDECK_PROJECTS="${RDECK_PROJECTS:-$RDECK_BASE/projects}"
- > RUNDECK_TEMPDIR="${RUNDECK_TEMPDIR:-/tmp/rundeck}"
- > RUNDECK_WORKDIR="${RUNDECK_TEMPDIR:-$RDECK_BASE/work}"
- > RUNDECK_LOGDIR="${RUNDECK_LOGDIR:-$RDECK_BASE/logs}"
- > RDECK_JVM_SETTINGS="${RDECK_JVM_SETTINGS:- -Xmx1024m -Xms256m -XX:MaxPermSize=256m -server}"
- > RDECK_TRUSTSTORE_FILE="${RDECK_TRUSTSTORE_FILE:-$RDECK_CONFIG/ssl/truststore}"
- > RDECK_TRUSTSTORE_TYPE="${RDECK_TRUSTSTORE_TYPE:-jks}"
- > JAAS_CONF="${JAAS_CONF:-$RDECK_CONFIG/jaas-loginmodule.conf}"
- > LOGIN_MODULE="${LOGIN_MODULE:-RDpropertyfilelogin}"
- > RDECK_HTTP_PORT=${RDECK_HTTP_PORT:-4440}
- > RDECK_HTTPS_PORT=${RDECK_HTTP_PORT:-4443}
- 4,5d18
- JAVA_CMD=java
- RUNDECK_TEMPDIR=/tmp/rundeck
- 7,17c20,21
- RDECK_HTTP_PORT=4440
- RDECK_HTTPS_PORT=4443
-
- #
- # If JAVA_HOME is set, then add it to home and set JAVA_CMD to use the version specified in that
- # path. JAVA_HOME can be set in the rundeck profile. Or set in this file.
- #JAVA_HOME=path/to/JDK or JRE/install>
-
- if [ ! -z $JAVA_HOME ]; then
- PATH=$PATH:$JAVA_HOME/bin
- export PATH
- ---
- > # If no JAVA_CMD, try to find it in $JAVA_HOME
- > if [ -z "$JAVA_CMD" ] && [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ] ; then
- 18a23,26
- > PATH=$PATH:$JAVA_HOME/bin
- > export JAVA_HOME
- > elif [ -z "$JAVA_CMD" ] ; then
- > JAVA_CMD=java
- 21,36c29,48
-
-
- export CLI_CP=$(find /var/lib/rundeck/cli -name \*.jar -printf %p:)
- export BOOTSTRAP_CP=$(find /var/lib/rundeck/bootstrap -name \*.jar -printf %p:)
- export RDECK_JVM="-Djava.security.auth.login.config=/etc/rundeck/jaas-loginmodule.conf \
- ---
- > # build classpath without lone : that includes .
- > for jar in $(find $RDECK_INSTALL/cli -name '*.jar') ; do
- > CLI_CP=${CLI_CP:+$CLI_CP:}$jar
- > done
- > for jar in $(find $RDECK_INSTALL/bootstrap -name '*.jar') ; do
- > BOOTSTRAP_CP=${BOOTSTRAP_CP:+$BOOTSTRAP_CP:}$jar
- > done
- >
- > RDECK_JVM="-Djava.security.auth.login.config=$JAAS_CONF \
- > -Dloginmodule.name=$LOGIN_MODULE \
- > -Drdeck.config=$RDECK_CONFIG \
- > -Drundeck.server.configDir=$RDECK_SERVER_CONFIG \
- > -Dserver.datastore.path=$RDECK_SERVER_DATA/rundeck \
- > -Drundeck.server.serverDir=$RDECK_INSTALL \
- > -Drdeck.projects=$RDECK_PROJECTS \
- > -Drdeck.runlogs=$RUNDECK_LOGDIR \
- > -Drundeck.config.location=$RDECK_CONFIG/rundeck-config.properties \
- > -Djava.io.tmpdir=$RUNDECK_TEMPDIR \
- > -Drundeck.server.workDir=$RUNDECK_WORKDIR \
- > -Dserver.http.port=$RDECK_HTTP_PORT"
- 40c52
- RDECK_JVM="$RDECK_JVM -Xmx3072m -Xms256m -XX:MaxPermSize=256m -server"
- ---
- > RDECK_JVM="$RDECK_JVM $RDECK_JVM_SETTINGS"
- 44,49c56,59
- #export RDECK_JVM="$RDECK_JVM -Drundeck.ssl.config=/etc/rundeck/ssl/ssl.properties -Dserver.https.port=${RDECK_HTTPS_PORT}"
-
- export RDECK_SSL_OPTS="-Djavax.net.ssl.trustStore=/etc/rundeck/ssl/truststore -Djavax.net.ssl.trustStoreType=jks -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol"
-
- #Enable local JMX monitoring
- #export RDECK_JVM="$RDECK_JVM -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9005 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
- ---
- > if [ -n "$RUNDECK_WITH_SSL" ] ; then
- > RDECK_JVM="$RDECK_JVM -Drundeck.ssl.config=$RDECK_SERVER_CONFIG/ssl.properties -Dserver.https.port=${RDECK_HTTPS_PORT}"
- > RDECK_SSL_OPTS="${RDECK_SSL_OPTS:- -Djavax.net.ssl.trustStore=$RDECK_TRUSTSTORE_FILE -Djavax.net.ssl.trustStoreType=$RDECK_TRUSTSTORE_TYPE -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol}"
- > fi
- 51,52c61
- if test -t 0 -a -z "$RUNDECK_CLI_TERSE"
- then
- ---
- > if [ -t 0 ] && [ -z "$RUNDECK_CLI_TERSE" ] ; then
- 57,60c66
- if test -n "$JRE_HOME"
- then
- unset JRE_HOME
- fi
- ---
- > unset JRE_HOME
- 62a69,70
- >
- > rundeckd="$JAVA_CMD $RDECK_JVM $RDECK_JVM_OPTS -cp $BOOTSTRAP_CP com.dtolabs.rundeck.RunServer $RDECK_BASE"
- [rundeck@sys rundeck]$
https://github.com/rundeck/rundeck/issues/2164
新添加了一个调度一次的按键,同时添加了自定义标题栏配置啥的,我修改了下,不过我的任务有点多,300多个,而且许多任务执行要好几个小时甚至几天,所以暂时不能重启看效果,好像rundeck-config.properties的配置修改后必须重启才能生效,这个有点不方便啊,毕竟线上的东西不可能经常性重启。
(添加了一个run job later )