Jenkins Swarm 插件 - 具有随机字母数字值的从属名称

标签 jenkins jenkins-plugins master-slave slave docker-swarm

我正在使用 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

我已经在 J​​enkins(主)中安装了插件,并从一台 Linux 机器(我想将其用作从机)下载了具有依赖项 2.0 的 swarm 客户端 jar 并运行了以下命令:

注意:
$p 变量存储了密码。
人们可以正常使用模式(而不是独占)。

$ java -jar swarm-client-2.0-jar-with-dependency.jar -name "`主机名 -a`_01"-fsroot "`pwd`/`主机名 -a`_01"-master http://jenkins_server.yo.company.com:8081 -disableSslVerification -用户名c123456 -密码$p -描述“`主机名-a`” -executors 5 -labels“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$CuiListener <init>
INFO: 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 中,我看到从站已成功创建(使用 JLNP 身份验证),但从站的名称有点奇怪。

它不是将从属名称创建为主机名(即,在我的例子中为jmeter01 jmeter01.yo.company.com),而是在从属名称后添加随机数字母数字值。有时为jmeter01_01-ee12355ec,有时为jmeter01_01-1893f0ea

我希望从属名称只是:jmeter01_01someserver_01someserver.fq.dn_01

我可能给出了错误的内容?

最佳答案

在命令行中使用选项-disableClientsUniqueId解决了这个问题。

我认为 -name VALUE 应该足够了,但似乎他们已经采取了每次都会创建从站的方法(无论如何),这就是为什么他们在名称后加上唯一/字母数字 ID 值的原因奴隶的名字。使用上述属性解决了这个问题(在我做了更多研究后发现他们在 2.0 版本中引入了修复程序)。

添加:为了在从属配置中创建工具位置,我使用了 -t Java=~/tools/jdk1.8.0_45 -t Gradle=~/tools/gradle-2.9 并且命令给出出现错误Jenkins 上没有定义工具“Java”

javax.servlet.ServletException: java.lang.RuntimeException: No tool 'Java' is defined on Jenkins.

经过研究,我发现这是因为在 Jenkins Master(我使用的)中,它的 JDK Installations 部分(在 Jenkins 全局设置中)将此工具名称值设置为“java”。 p>

尝试 -t java=~/tools/jdk1.8.0_45 解决了该问题,现在我可以看到具有值 ~/tools/jdk1.8.0_45< 的 (JDK) java 工具/strong> 在从属配置中。

PS:无法使用 swarm 客户端 jar 来定义环境变量(就像我们通常在 Jenkins GUI 中的节点/从属配置中定义/看到的那样)(这是可以通过以下方式增强 Swarm 插件的方法):这个新功能)。

关于Jenkins Swarm 插件 - 具有随机字母数字值的从属名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34076102/

相关文章:

node.js - 在nodejs中,我可以有子文件夹,每个子文件夹都托管一个AWS lambda函数吗?

asp.net-core - 无法发布 NUnit 测试结果报告,收到错误消息,无法读取 XSL XML 文件

email - Jenkins EMail-ext 插件在电子邮件正文中发送 groovy 代码

git - 在 jenkins 中为 git 存储库配置端口

jenkins - 如何阻止 Jenkins 作业在特定时间运行

mysql - 在 Galera Cluster 和独立的 MySQL slave 之间设置 GTID 复制

r - R中的主/从多核处理

Jenkins 声明式管道 - 使用 AWS 凭证

mysql - tungsten 从 mysql slave 复制到 vertica - 似乎没有查看中继日志?

java - Jenkins 拉取请求插件抛出 ArrayIndexOutOfBoundsException 异常