我有最新的Jenkins和它的Swarm插件客户端jar(2.0)。
我下载了swarm-client jar并运行了以下命令来创建奴隶:(注意::我使用用户匿名连接到Jenkins master不需要用户名/密码,并且通过创建模式 swarm。* 的新角色,在Global Roles中提供了Create Slave权限,并在Slave角色下提供了Slave部分中的所有访问权限。 Jenkins Swarm客户端:https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin
用户可以提供有效的用户名/密码,如果该用户具有“创建从属”(全局角色)以及“管理角色”下的“Jenkins中的从属角色”中的连接,删除等其他访问权限。
$ which swarm-client.jar
~/tools/bin/swarm-client.jar
$ pwd
/home/confman/slaves
$ ~/tools/jdk1.7.0_60/bin/java -jar `which swarm-client.jar` -name "swarm_`hostname -a`" -fsroot "~/slaves/swarm_`hostname -a`" -master http://jenkins_master.srvr.company.com:8083 -username Anonymous -description "`hostname -a` " -executors 5 -labels "ANSIBLE_CENTOS CENTOS" -mode 'exclusive' -showHostName -t java=~/tools/jdk1.8.0_45 -t gradle=~/tools/gradle-2.3 -t Maven=~/tools/apache-maven-3.3.3 -t Groovy2=~/tools/groovy-2.4.5 --showHostName -retry 0 -disableClientsUniqueId &
但是,除了上面的命令设置Slave的远程根目录到〜/ slaves / swarm_jmeter01 之外,它还设置了远程根路径包括作为前缀/相对于我运行上述命令的文件夹(如下所示)。 在我的情况下,主机名命令值为 jmeter01 。
文档没有提到这个参数是相对于当前文件夹的(你在那里运行java -jar slave-client jar命令)。
是否有人为此找到了解决方案,即它可以忽略当前文件夹并将其设置为〜/ slaves / swarm_01或类似的东西?
显然在我的自动化中解决这个问题,我可以先#c; cd" (更改目录)到正确的文件夹〜/ slaves,然后只传递-fsroot" swarm_`hostname -a`"将远程目录路径值设置为:〜/ slaves / swarm_jmeter01(在这种情况下,它可以正常工作)。
答案 0 :(得分:0)
〜是shell扩展......如果这不起作用,那么使用$ HOME代替