-
-
Save adam-stokes/a0573816fbc0fd28a38b0626c34e5f46 to your computer and use it in GitHub Desktop.
bash script to register new jenkins node
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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