Carrega a configuração do Jenkins a partir do config.xml

1

Estou tentando obter minha infra-estrutura definida como código. Para fazer isso, eu criei 2 servidores jenkins com fantoches. Eu configurei manualmente um e copiei o config.xml de trabalho para o outro.

Como o jenkins tem a capacidade de ler no arquivo config.xml, eu esperaria que o segundo servidor jenkins fosse um gêmeo idêntico do primeiro.

Infelizmente, o segundo servidor jenkins falha na inicialização com o seguinte erro:

Manager password must not be empty or null.

Coisas que tentei:

  • faça um grep recursivo do diretório / var / lib / jenkins procurando por qualquer string que corresponda a 'managerPassword' (encontrado 0)
  • copie os arquivos e diretórios de segredos do antigo para o novo.

Sobre:

Jenkins 1,572
Ldap plugin 1.10.2

Tenho certeza de que há uma maneira de copiar a configuração de um servidor jenkins para outro.
Alguém já fez isso? Quais arquivos estou faltando?

Erro completo:

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

Atualizar

Eu tentei recursivamente (e preservando as permissões) copiar todo o diretório / var / lib / jenkins do servidor primário para o secundário e reiniciado. Ele dá o mesmo erro sobre 'managerPassword'

    
por spuder 03.09.2014 / 23:48

2 respostas

1

Eu tive o mesmo erro exato muito recentemente. Percebi depois de definir a segurança para falso no config.xml e manualmente configurar ldap no novo host que eu esqueci de importar o certificado para o armazenamento de chave Java como estamos usando ldaps. Aqui estão os passos que tomei para resolver o problema. Para referência, eu estou usando java-1.7.0-openjdk-1.7.0.65, jenkins v1.568 no CentOS 6.5 totalmente atualizado.

Pare de Jenkins

service jenkins stop

Sincronize o diretório home de Jenkins (usei o flag -I para sobrescrever os arquivos existentes):

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

Backup de cacerts no novo host:

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

cacerts Cópia de host antigo para o novo (ou importação via keytool se você tiver outros certificados nesse novo hospedeiro você precisa manter):

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

(método de importação: keytool -import -alias "some-nome-de-cert" -keystore cacerts -trustcacerts -file "/path/to/cert.crt")

Inicie o Jenkins

service jenkins start

Infelizmente, não tenho reputação suficiente para comentar e recomendo a importação de um certificado, por isso, não seja difícil se isso não resolver o problema. Eu me inscrevi aqui quando me deparei com o seu erro. Espero que ajude!

    
por 04.09.2014 / 16:29
1

é um problema aleatório acurado também para mim ... você pode abrir o arquivo config.xml em um diretório raiz do Jenkins e transformar a tag false useSecurity. agora você redefiniu o gerenciamento de segurança

    
por 27.02.2015 / 12:47

Tags