Skip to content

Instantly share code, notes, and snippets.

@scarytom
Created June 25, 2013 14:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save scarytom/5859142 to your computer and use it in GitHub Desktop.
Save scarytom/5859142 to your computer and use it in GitHub Desktop.
bash script to register new jenkins node
#!/bin/bash
# jenkins master vitals
CI_MASTER_HOST="ci-1.youdevise.com"
CI_MASTER_PORT="80"
# node vitals
NODE_HOST="tom-denley-rocks-01.youdevise.com"
NODE_NAME="tom-denley-rocks-name-01"
NODE_DESC="my node of glory"
NODE_LABELS="badass experimental"
NODE_REMOTE_FS="/home/ci/jenkins"
# ssh jenkins launcher params
NODE_LAUNCHER_PORT="22"
NODE_LAUNCHER_JVM_ARGS="-Djava.awt.headless=true -Xmx256m"
NODE_LAUNCHER_CREDENTIALS_ID="d75c97c9-8ecc-4050-b79a-1ed6295c506c"
# node env vars
NODE_ANT_HOME="/usr/share/ant"
NODE_CATALINA_HOME="/usr/share/tomcat6"
NODE_JAVA_HOME="/usr/lib/jvm/java-6-sun"
# request json payload
JSON="{
\"nodeDescription\": \"$NODE_DESC\",
\"remoteFS\": \"$NODE_REMOTE_FS\",
\"labelString\": \"$NODE_LABELS\",
\"launcher\": {
\"stapler-class\": \"hudson.plugins.sshslaves.SSHLauncher\",
\"host\": \"$NODE_HOST\",
\"credentialsId\": \"$NODE_LAUNCHER_CREDENTIALS_ID\",
\"port\": \"$NODE_LAUNCHER_PORT\",
\"javaPath\": \"\",
\"jvmOptions\": \"$NODE_LAUNCHER_JVM_ARGS\",
\"prefixStartSlaveCmd\": \"\",
\"suffixStartSlaveCmd\": \"\"
},
\"nodeProperties\": {
\"stapler-class-bag\": \"true\",
\"hudson-slaves-EnvironmentVariablesNodeProperty\": {
\"env\": [{\"key\": \"ANT_HOME\", \"value\": \"$NODE_ANT_HOME\"},
{\"key\": \"CATALINA_HOME\", \"value\": \"$NODE_CATALINA_HOME\"},
{\"key\": \"JAVA_HOME\", \"value\": \"$NODE_JAVA_HOME\"}]
}
}
}"
ENC_JSON="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$JSON")"
curl --request POST --data "name=$NODE_NAME&type=hudson.slaves.DumbSlave&json=$ENC_JSON" "http://$CI_MASTER_HOST:$CI_MASTER_PORT/computer/doCreateItem"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment