Configure Jenkins for different user.home
Asked Answered
M

5

8

I am running Jenkins version 1.527 (I know there is a newer version but it is broken, I can't use the user interface in 1.528 and haven't gotten a chance to upgrade to 1.529)

I am trying to change the user.home system property in Jenkins by doing this in my startup script:

export HOME=/new-home-dir

However, the environment variable shows correctly in jenkins and user.dir shows as the exported variable, but user.home does not change.

The reason I can't use the default functionality is because I am in an enterprise that locks down the user's home directory and my user can add or modify files there.

Any help on changing user.home would be greatly appreciated.

FYI - I am running Jenkins on RHEL v6.2

Attempted Solutions

  1. add -Duser.home=/newDir to JAVA_OPTS or JAVA_ARGS, neither worked
  2. add -Duser.home=/newDir to the MAVEN_OPTS in the build job.
Maddi answered 9/9, 2013 at 18:4 Comment(6)
did you try over riding it in the user's .bash_profile See superuser.com/questions/183870/… ; #4608687 and hacktux.com/bash/bashrc/bash_profile make sure you edit the correct file for your OS and shell. Can make sure by echo "am in file <file name>..." in eachMinnesota
unfortunately, I do not have access to these files. I have made a request to an SA to add a home directory for the user, but I would still like to see an answer for this question since Jenkins should be picking up changes to the HOME environment variable.Maddi
maybe you can try the jenkins support site?Minnesota
already tried, doesn't seem to get too much attention as people that run jenkins must not be running it in the same type of restrictive environment that I am.Maddi
oh well i guess the next thing to try is set a bounty for this question or to get the source code and fix your self or start process to get it updated (IF the new version supports that )Minnesota
It could be a permission problem that limits Jenkins with this specific folder. Did you already check it?Landaulet
S
5

I found another workaroud.

  1. Go to the Manage Jenkins > Configure System
  2. Navigate to the Global Properties
  3. Make the Checkbox Environment variables active
  4. Name field pop up the user.home
  5. value is your desired path
  6. Click Apply, Save and Restart Jenkins

This overrides that path.

Sweetie answered 23/11, 2015 at 12:19 Comment(1)
This is not the correct way for doing it! Please see my answer below.Studner
S
3

I exactly had the same problem. You cannot just add an environment variable to change the path. You'll need to change the jenkins user's home directory itself.

In a linux/unix based system run the following command on your terminal.

login as a root user or use sudo in front of the commands if you're not running it as root user,

1) Move the Jenkins installation directory your desired location.

  mv /var/lib/jenkins /path/to/your/location

2) Change the Jenkins users home directory.

  usermod -d /path/to/your/location jenkins

Now restart jenkins. You should see the user.home and HOME variable set to the new location.

Studner answered 15/1, 2016 at 16:24 Comment(0)
L
2

I had the same problem and solved in two different ways:

1- At the first time I edited the file startup.sh, inside /tomcat/bin. Inside this file I added this at the first line: JENKINS_HOME=/var/jenkins

2- Set the same inside environment variables. Just take care to set the variable with the same user that Jenkins are executed. For example, if Jenkings Jenkins is running under root, you need to specify the environment variable with this uses.

Observation: Because of compatibility questions, if you define HUDSON_HOME instead of JENKINS_HOME it will works fine two.

Hope it helps!

Landaulet answered 17/3, 2014 at 20:34 Comment(0)
P
1

I exactly had a same problem on ubuntu server.

login as a root user.

stop the all process running with a jenkins user.

1) stop the jenkins service.

  sudo service jenkins stop

2) Change the Jenkins users home directory.

  usermod -d /path/to/your/location jenkins

3) start the jenkins service.

  sudo service jenkins start 

You will see the user.home and HOME and PWD variable set to the new location.

  • Go to: Manage Jenkins > system information

  • Here you will see the changed variables location

Pseudocarp answered 26/2, 2019 at 6:36 Comment(0)
K
0

Changing JENKINS_HOME and user.home are two separate topics. The original questions is all about changing the user.home system property. I resolved this issue (in Jenkins 2.34) by following the steps mentioned below:

  • Go to: Manage Jenkins > Configure System
  • Check the 'Environment variables' checkbox
  • Enter 'user.home' in Name field and your desired user home path in Value field
  • Save the changes and you are done In my Jenkins, I was facing the issue that Jenkins maven was trying to read the maven settings.xml from a wrong user.home path. I resolved this issue by adding 'user.home' environment variable in Jenkins as explained above.
Karyn answered 13/12, 2016 at 14:41 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.