Definir JENKINS_HOME no Tomcat7?

9

Estou tentando configurar o Jenkins no Tomcat7 no Ubuntu. Eu instalei o Tomcat7 e implantei jenkins.war , e agora vejo a página inicial do Jenkins em http://myhost:8080/jenkins , mas ele está tentando criar o diretório Jenkins em /usr/share/tomcat7/.jenkins , o que não é possível por motivos de segurança. Já criei /srv/jenkins e recebi as permissões tomcat7 group e quero definir JENKINS_HOME para esse caminho. Eu tentei adicioná-lo à configuração do tomcat em /etc/tomcat7/server.xml :

<GlobalNamingResources>

  <Environment name="JENKINS_HOME" value="/srv/jenkins"
       type="java.lang.String" override="false"/>
  <!-- Default settings -->

E eu também tentei adicioná-lo ao arquivo de contexto criado automaticamente em ROOT/META-INF/context.xml (não há $CATALINA_HOME/conf até onde eu sei).

<Context path="/"
        antiResourceLocking="false" >
    <Environment name="JENKINS_HOME" value="/srv/jenkins/" type="java.lang.String"/>
</Context>

Mas, mesmo depois de reiniciar o tomcat7, ainda recebo o mesmo resultado (tentando usar /usr/share/tomcat7/.jenkins ).

Onde preciso definir a variável de ambiente para JENKINS_HOME no Tomcat7?

    
por C. Ross 21.12.2012 / 16:17

5 respostas

3

Não é exatamente a solução que eu prefiro, mas criei o script /usr/share/tomcat7/bin/setenv.sh , conforme descrito em catalina.sh .

#!
export JENKINS_HOME=/srv/jenkins

E, é claro, concedeu permissões de execução com chmod ugo+x setenv.sh .

    
por 21.12.2012 / 18:51
3

Eu configurei em /etc/default/tomcat7 . Para o seu exemplo, anexe esta linha:

JENKINS_HOME=/srv/jenkins
    
por 18.03.2013 / 01:55
1

Uma abordagem de link simbólico onde meus dados de Jenkins vão para um sistema de arquivos de backup.

[root@lx08 tomcat6]# ln -s /data01/jenkins .jenkins
[root@lx08 tomcat6]# ls -la
total 12
drwxrwxr-x    3 root root   4096 Dec 27 13:00 .
drwxr-xr-x. 181 root root   4096 Dec 27 11:28 ..
drwxr-xr-x    2 root root   4096 Dec 27 11:28 bin
lrwxrwxrwx    1 root tomcat   12 Dec 27 11:28 conf -> /etc/tomcat6
lrwxrwxrwx    1 root root     15 Dec 27 13:00 .jenkins -> /data01/jenkins
lrwxrwxrwx    1 root root     23 Dec 27 11:28 lib -> /usr/share/java/tomcat6
lrwxrwxrwx    1 root root     16 Dec 27 11:28 logs -> /var/log/tomcat6
lrwxrwxrwx    1 root root     23 Dec 27 11:28 temp -> /var/cache/tomcat6/temp
lrwxrwxrwx    1 root root     24 Dec 27 11:28 webapps -> /var/lib/tomcat6/webapps
lrwxrwxrwx    1 root root     23 Dec 27 11:28 work -> /var/cache/tomcat6/work
[root@lx08 tomcat6]# pwd
/usr/share/tomcat6

[root@lx08 tomcat6]# export JENKINS_HOME=http://localhost:8080/jenkins
[root@lx08 tomcat6]# java -jar /usr/share/tomcat6/webapps/jenkins/WEB-INF/lib/jenkins-core-1.495.jar  "TestJob" echo hello
hello
    
por 27.12.2012 / 13:34
1

Uma maneira mais simples é editar o descritor de contexto do servlet Tomcat ($ CATALINA_HOME / conf / config.xml) e adicionar a seguinte linha:

<Context ...>
  <Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>

Visualizado no link

    
por 04.11.2013 / 21:16
0

De acordo com a documentação que li e alguns exemplos acima, o Jenkins usa o diretório pessoal do usuário do Tomcat e procura por um .jenkins nessa pasta. Certifique-se de que o diretório pessoal do usuário do Tomcat esteja configurado com um valor esperado, / opt / apache / tomcat, por exemplo, e crie um link simbólico .jenkins nessa pasta, apontando para onde sua pasta do Jenkins reside.

ln -s /path/to/jenkins_home /opt/apache/tomcat/.jenkins
    
por 14.01.2016 / 21:09