我正在使用Jenkins(1.573)和Swarm插件(2.0):https : //wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin。
从http://maven.jenkins-ci.org/content/repositories/releases/org/jenkins-ci/plugins/swarm-client/2.0/下载了jar
我已经在Jenkins(主机)中安装了插件,并且从其中一台Linux机器(我想用作从机)中下载了具有依赖项2.0的swarm客户端jar并运行了以下命令:
注意:
$ p变量中存储了密码。
可以正常使用模式(而不是独占模式)。
$ java -jar swarm-client-2.0-jar-with-dependencies.jar -name“`hostname -a`_01” -fsroot“`pwd` /`hostname -a`_01” -master http://jenkins_server.yo .company.com:8081 -disableSslVerification-用户名c123456-密码$ p-说明“主机名-a”-执行程序5-标签“ ANSIBLE_CENTOS CENTOS”-模式“独占”-重试3
Discovering Jenkins master Dec 03, 2015 3:52:58 PM org.apache.commons.httpclient.HttpMethodBase getResponseBody WARNING: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. Attempting to connect to http://jenkins_server.yo.company.com:8081/ 1229493c-3bd5-4cf4-9210-3392089f2ee2 with ID 1893f0ea Could not obtain CSRF crumb. Response code: 404 Dec 03, 2015 3:53:01 PM hudson.remoting.jnlp.Main createEngine INFO: Setting up slave: jmeter01_01-1893f0ea Dec 03, 2015 3:53:01 PM hudson.remoting.jnlp.Main$CuiListenerINFO: Jenkins agent is running in headless mode. Dec 03, 2015 3:53:01 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Locating server among [http://jenkins_server.tsh.thomson.com:8081/] Dec 03, 2015 3:53:02 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Connecting to jenkins_server.tsh.thomson.com:53605 Dec 03, 2015 3:53:02 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Handshaking Dec 03, 2015 3:53:02 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Connected
在Jenkins master中,我看到成功创建了slave(使用JLNP auth),但是slave的名字有点奇怪。
而不是将从属名称创建为主机名(例如, 在我的情况下为jmeter01 或 jmeter01.yo.company.com),而是使用RANDOM字母数字值为从属名称添加后缀。有时为jmeter01_01-ee12355ec,有时为jmeter01_01-1893f0ea。
我希望从属名称仅为:jmeter01_01或someserver_01或someserver.fq.dn_01
我可能在说错什么?
在命令行中使用选项-disableClientsUniqueId可以解决该问题。
我认为-name VALUE应该足够,但似乎他们采用了每次都会创建从属的方法(无论如何),这就是为什么他们在从属名称后缀唯一/字母数字ID值的原因。使用以上属性解决了该问题(在我进行了更多研究后发现他们在2.0版中引入了此修复程序)。
另外:为了在从站的配置中创建工具位置,我使用了-t Java =〜/ tools / jdk1.8.0_45 -t Gradle =〜/ tools / gradle-2.9,该命令给了我一个错误没有定义工具'Java'在詹金斯(Jenkins)上。
javax.servlet.ServletException: java.lang.RuntimeException: No tool 'Java' is defined on Jenkins.
经过研究,我发现这是因为在Jenkins Master(我使用过)中,在JDK Installations部分(在Jenkins全局设置中)将此工具的Name值设置为“ java”。
尝试-t java =〜/ tools / jdk1.8.0_45解决了该问题,现在我可以在从属服务器的配置中看到(JDK)java工具,其值为〜/ tools / jdk1.8.0_45。
PS:无法使用swarm客户端jar来定义环境变量(就像我们通常在Jenkins GUI中定义/查看节点/从站的配置一样)(这可以通过此新功能增强Swarm插件)。