Skip to content

Instantly share code, notes, and snippets.

@sergeyhush
Last active September 19, 2022 11:38
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save sergeyhush/4e892837cf5c31c3d242 to your computer and use it in GitHub Desktop.
Save sergeyhush/4e892837cf5c31c3d242 to your computer and use it in GitHub Desktop.
Jenkins create new node
#!/bin/bash
JENKINS_URL=$1
NODE_NAME=$2
NODE_SLAVE_HOME='/home/build/slave'
EXECUTORS=1
SSH_PORT=22
CRED_ID=$3
LABELS=build
USERID=${USER}
cat <<EOF | java -jar ~/bin/jenkins-cli.jar -s $1 create-node $2
<slave>
<name>${NODE_NAME}</name>
<description></description>
<remoteFS>${NODE_SLAVE_HOME}</remoteFS>
<numExecutors>${EXECUTORS}</numExecutors>
<mode>NORMAL</mode>
<retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
<launcher class="hudson.plugins.sshslaves.SSHLauncher" plugin="ssh-slaves@1.5">
<host>${NODE_NAME}</host>
<port>${SSH_PORT}</port>
<credentialsId>${CRED_ID}</credentialsId>
</launcher>
<label>${LABELS}</label>
<nodeProperties/>
<userId>${USERID}</userId>
</slave>
EOF
@hanqin
Copy link

hanqin commented Aug 31, 2016

hello, may I ask how you find the schema for this slave configuration? I would like to use options other than provided above.
thanks a lot.

@hanqin
Copy link

hanqin commented Aug 31, 2016

OK, i finally find the config under /jenkins_home/nodes/.../config.xml

@burnettk
Copy link

hey @sergeyhush , this was crazy useful, thanks. i think the dollar sign in RetentionStrategy$Always needs to be escaped with one backslash in order for it to get through correctly. a comment showing usage of get-node in here might also be hot, since i learned about that elsewhere and it was useful to get multiple nodes looking the same.

java -jar ~/bin/jenkins-cli.jar -s $1 get-node $2

you are the man!

@DanielWang1204
Copy link

Thanks man.
I got a 'java.net.MalformedURLException: no protocol: JENKINS_URL' exception when I tried to create a new node with your script.
Is it because of wrong URL ? I tried different url but none success

@bruce-szalwinski
Copy link

Thanks, very helpful script.

@thinkerou
Copy link

why I run java -jar jenkins-cli.jar -s https://test.myaddress.com/ help which don't anything output? thanks!

@mewa
Copy link

mewa commented May 21, 2019

SSL/TLS issues probably

Copy link

ghost commented Oct 3, 2019

Hi,

how do I obtain the Cred_ID ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment