web-dev-qa-db-fra.com

Changer de JENKINS_HOME sous Red Hat Linux?

J'ai utilisé cette procédure pour installer Jenkins: 

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

Après son lancement, j'ai découvert que la partition/var/lib/jenkins sur mon serveur était très petite. Je veux le déplacer, mais je ne veux pas changer l'utilisateur sous lequel il est exécuté. Je suis nouveau sur Linux et je suis perplexe. Comment puis-je le déplacer par exemple vers mon dossier Home/Public? L'utilisateur "Jenkins" ne semble pas avoir de dossier personnel. Il fonctionne en tant que démon au démarrage, je ne sais donc pas où configurer ces paramètres .. Puis-je créer un dossier personnel pour l'utilisateur Jenkins? Comment?

J'ai lu cet article: 

https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins

mais je ne comprends pas COMMENT "installer la nouvelle maison de Jenkins". J'ai utilisé la commande d'exportation et redémarré le service, mais l'ancien chemin apparaît toujours dans les écrans de gestion de Jenkins.

J'ai lu les 2-3 questions similaires sur stackoverflow également, mais il me manque toujours une grosse pièce. Où trouver ce fichier où je change le chemin de façon permanente?

22
Dilbertina

Voici un moyen facile de résoudre votre problème. Tout d’abord, déplacez le répertoire Jenkins de /var/lib/jenkins à /home/jenkins. Ensuite, créez un lien symbolique à /var/lib/jenkins pointant vers /home/jenkins. Et bien sûr, arrêtez le service Jenkins avant de le faire.

Sudo service jenkins stop
Sudo mv /var/lib/jenkins /home
Sudo ln -s /home/jenkins /var/lib/jenkins
Sudo service jenkins start
33
David Levesque

J'ai réussi à changer l'emplacement de base de Jenkins en modifiant le contenu du fichier/etc/sysconfig/jenkins comme suit:

JENKINS_HOME="/home/jenkins"
14
Richard Chen

D'accord, je relis votre question un peu plus près, voyons si nous pouvons résoudre cela. Je vais énumérer quelques informations que vous ne connaissez peut-être pas.

  1. L'installation de Jenkins et la maison de Jenkins ne sont pas la même chose. Le premier concerne le fichier de guerre et les autres éléments que Jenkins doit exécuter. jenkins_home est l'endroit où vos données sont stockées. Par défaut, jenkins_home réside dans ~/.jenkins. Lorsque vous démarrez Jenkins, il recherche une variable d’environnement lui indiquant où trouver ces fichiers.

  2. Jenkins s'exécute en tant qu'utilisateur distinct, qui, par défaut, est jenkins. De cette façon, cela ne vous gênera pas. L'utilisateur de jenkins n'aura pas accès à VOTRE répertoire personnel, ce qui constituerait une mauvaise solution. Idéalement, il aurait son propre répertoire personnel,/home/jenkins. Votre répertoire personnel pourrait alors être /home/jenkins/.jenkins. Vous dites que ce dossier n'existe pas. Si vous n'y avez pas accès pour le créer vous-même, c'est très bien, vous pouvez spécifier TOUT dossier. Cependant, l'utilisateur jenkins doit avoir la propriété de ce dossier pour pouvoir y lire et y écrire.

  3. Il semble que Jenkins sur Redhat fonctionnera avec Tomcat par défaut. La documentation sur la définition des variables d’environnement pour Tomcat est https://wiki.jenkins-ci.org/display/JENKINS/Tomcat

  4. Tout cela est configuré avec un script. https://wiki.jenkins-ci.org/display/JENKINS/JenkinsLinuxStartupScript semble être celui qui est utilisé à cette fin. Même si vous ne connaissez rien aux scripts Shell, ce n'est pas trop difficile ... les lignes avec un # sont des commentaires. La première ligne 

    JENKINS_USER = Jenkins

définit le nom du compte utilisateur que jenkins utilisera. Regardez un peu plus loin et vous verrez la ligne

export JENKINS_BASEDIR=/home/jenkins

export CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true"

Cela vous permet de définir un répertoire dans lequel jenkins doit vivre, puis de définir le répertoire jenkins_home sur/jenkins-home.

Pour votre application, vous voudrez peut-être faire quelque chose comme ceci

export CATALINA_OPTS="-DJENKINS_HOME=/var/jenkinsmount/home -Xmx512m -Djava.awt.headless=true"

Cela stockerait alors toutes vos données de construction (qui sont la partie qui grandit!) Dans/var/jenkinsmount/home ... tout en laissant le reste de vos fichiers à leur emplacement actuel.

Je ne l'ai pas utilisé sur redhat, mais j'espère en avoir expliqué suffisamment pour que vous compreniez réellement ce qui se passe afin que vous puissiez le faire démarrer!

Autre info:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Unix+daemon

6
Paul Becotte

J'ai été confronté au même problème et à la même question. Reliant quelques points, je pouvais réparer mon Jenkins après avoir déplacé Jenkins vers un nouvel emplacement en raison du même problème: espace dans le disque sous/var/lib/jenkins.

Voici les procédures à suivre pour le faire fonctionner, sachant que Jenkins est dirigé vers un port autre que celui par défaut. (J'ai appliqué ce processus sur 2 serveurs)

Commencez par déplacer le répertoire Jenkins de/var/lib/jenkins vers/opt/jenkins 

Sudo service jenkins stop
Sudo mv /var/lib/jenkins /opt/

Vous pouvez maintenant modifier votre espace de travail et votre répertoire de construction vers n’importe quel autre emplacement de votre ordinateur . Jenkins fournit 3 variables prédéfinies pouvant être utilisées pour spécifier le nouvel emplacement:

JENKINS_HOME - Répertoire de base de Jenkins

ITEM_ROOTDIR - Répertoire racine d'un travail pour lequel l'espace de travail est alloué

ITEM_FULLNAME - ‘/’ - nom du travail séparé, comme "foo/bar"

Sudo su jenkins (access as Jenkins user)
JENKINS_HOME=/opt/jenkins
ITEM_ROOTDIR=/opt/jenkins
ITEM_FULLNAME=/opt/jenkins
exit (exit Jenkins user)

Maintenant, éditez la configuration de jenkins

/opt/jenkins$ Sudo nano /etc/default/jenkins

Modifier la ligne suivante

#jenkins home location
#JENKINS_HOME=/var/lib/$NAME (here is the default)
JENKINS_HOME=/opt/jenkins (that is our new location)

changer le répertoire personnel d'un utilisateur

Sudo usermod -d /opt/jenkins/ jenkins
Sudo service jenkins start
5
SFmtl

L'emplacement de Richard Chen est l'endroit où j'ai trouvé le fichier Jenkins sur mon système CentOS 6.6. 

  1. Sudo service jenkins stop
  2. mv/var/lib/jenkins/home/mylocation /
  3. (s'assurait que le nouvel emplacement avait la bonne propriété et le groupe-- Jenkins)
  4. modifié le contenu du fichier/etc/sysconfig/jenkins comme suit: 

    JENKINS_HOME = "/ home/mylocation"

  5. Sudo service jenkins commence
1
Bluefishzx

si quelqu'un a des problèmes d'espace et que vous devez déplacer vos Jenkins, je voulais juste répéter que:

  1. Sudo service jenkins stop
  2. Sudo mv/var/lib/jenkins/home
  3. Sudo ln -s/home/jenkins/var/lib/jenkins
  4. Sudo service jenkins commence

fonctionne très bien, alors merci à la personne qui a posté cette réponse il y a quelques années!

0
JAS