Я пытаюсь определить свою инфраструктуру как код. Для этого я развернул 2 сервера Jenkins с марионеткой. Затем я вручную настроил один и скопировал рабочий config.xml в другой.
Поскольку jenkins имеет возможность читать в файле config.xml, я ожидаю, что второй сервер jenkins будет идентичным близнецом первого.
К сожалению, второй сервер jenkins выходит из строя при запуске со следующей ошибкой:
Manager password must not be empty or null.
Вещи, которые я пробовал:
Около:
Дженкинс 1,572
Плагин ldap 1.10.2
Я уверен, что есть способ скопировать конфигурацию с одного сервера 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
Обновить
Я попытался рекурсивно (и с сохранением разрешений) скопировать весь каталог / var / lib / jenkins с первичного сервера на вторичный и перезапустить. Это дает ту же ошибку о 'managerPassword'
Совсем недавно у меня была такая же ошибка. После установки значения false в config.xml и ручной настройки ldap на новом хосте я понял, что забыл импортировать сертификат в хранилище ключей java, поскольку мы используем ldaps. Вот шаги, которые я предпринял для решения проблемы. Для справки, я использую java-1.7.0-openjdk-1.7.0.65, jenkins v1.568 на Centos 6.5 полностью обновлен.
Остановить Дженкинса
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
(метод импорта: keytool -import -alias "some-name-for-cert" -keystore cacerts -trustcacerts -file "/path/to/cert.crt")
Начать Jenkins
service jenkins start
К сожалению, у меня недостаточно репутации, чтобы комментировать и рекомендовать импортировать сертификат, поэтому, пожалуйста, не будьте резкими, если это не поможет. Я зарегистрировался здесь, когда наткнулся на вашу ошибку. Надеюсь, поможет!
это случайная проблема, возникшая и у меня ... вы можете открыть файл config.xml в корневом каталоге Jenkins и включить ложный тег useSecurity. теперь вы сбросили управление безопасностью