Wednesday, February 13, 2019

自动获取Jenkins agent secret值

背景:从Jenkins 2.0开始,slave的启动需要有个SECRET值
问题:如何自动获取SECRET值
【linux下版本】
JENKINS_AGENT_SECRET=$(curl --user $JENINS_CREDENTIALS --connect-timeout 60 -m 120 -L $JENKINS_AGENT_PAGE_URL 2> /dev/null \
                            | grep ' \-secret ' | grep -Eo '\-secret .+? ' | cut -d' ' -f2 | tr -d ' \t\n\r')

【window下版本】

FOR /F "usebackq" %%t IN (`curl -L -s -u %JENINS_CREDENTIALS% -X GET %JENKINS_AGENT_JNLP_URL% ^| sed "s/.*\([a-z0-9]*\).*/\1/"`) DO set JENKINS_AGENT_SECRET=%%t

注意:在batch下,管道|需要使用^来进行转义