从config.xml加载Jenkinsconfiguration

我试图把我的基础设施定义为代码。 为了做到这一点,我已经把两个jenkins服务器与puppet分开了。 然后我手动configuration一个,并将工作的config.xml复制到另一个。

由于jenkins能够在config.xml文件中读取,我期望第二个jenkins服务器是第一个完全相同的。

不幸的是,第二个jenkins服务器在启动时崩溃,出现以下错误:

Manager password must not be empty or null. 

我试过的东西:

  • 执行/ var / lib / jenkins目录的recursiongrep查找任何匹配'managerPassword'的string(find0)
  • 将秘密文件和目录从旧的复制到新的。

关于:

jenkins1.572
Ldap插件1.10.2

我确定有一种方法可以将configuration从一台jenkins服务器复制到另一台。
有没有人做过? 我错过了哪些文件?

完整的错误:

hudson.util.HudsonFailedToLoad: org.jvnet.hudson.reactor.ReactorException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initialDirContextFactory': Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'managerPassword' threw exception; nested exception is java.lang.IllegalArgumentException: Manager password must not be empty or null. at hudson.WebAppMain$3.run(WebAppMain.java:234) Caused by: org.jvnet.hudson.reactor.ReactorException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initialDirContextFactory': Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'managerPassword' threw exception; nested exception is java.lang.IllegalArgumentException: Manager password must not be empty or null. at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:269) at jenkins.InitReactorRunner.run(InitReactorRunner.java:44) at jenkins.model.Jenkins.executeReactor(Jenkins.java:896) at jenkins.model.Jenkins.<init>(Jenkins.java:795) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.model.Hudson.<init>(Hudson.java:78) at hudson.WebAppMain$3.run(WebAppMain.java:222) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initialDirContextFactory': Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'managerPassword' threw exception; nested exception is java.lang.IllegalArgumentException: Manager password must not be empty or null. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1279) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at

更新

我试着recursion(同时保留权限),将整个/ var / lib / jenkins目录从主服务器复制到辅助服务器并重新启动。 它给出了相同的错误有关“pipe理密码”

我最近有同样的确切的错误。 我意识到在config.xml中将安全性设置为false并在新的主机上手动设置ldap,因为我们正在使用ldaps,所以我忘记将证书导入到java密钥库。 以下是我解决问题的步骤。 作为参考,我使用java-1.7.0-openjdk-1.7.0.65,CentOS 6.5上的jenkins v1.568完全更新。

停止Jenkins

 service jenkins stop 

同步Jenkins主目录(使用-I标志覆盖现有的文件):

 rsync -avI user@old_host:/var/lib/jenkins/* /var/lib/jenkins/ 

在新主机上备份cacerts:

 cp /etc/pki/java/cacerts /some/backup/dir 

将cacerts从旧主机复制到新的(或通过keytool导入,如果您需要保留新主机上的其他证书):

 scp user@old_host:/etc/pki/java/cacerts /etc/pki/java/cacerts 

(import method:keytool -import -alias“some-name-for-cert”-keystore cacerts -trustcacerts -file“/path/to/cert.crt”)

开始jenkins

 service jenkins start 

不幸的是,我没有足够的评价和build议import证书,所以请不要苛刻,如果这不能解决它。 当我遇到你的错误时,我在这里注册了。 希望能帮助到你!

这是一个随机问题也适合我..你可以在Jenkins的根目录打开config.xml文件,并将false useSecurity标记。 现在你已经重新设置了安全pipe理