您至少需要 Create Slave 权限或更高权限才能使用 Swarm 插件创建从站。
您有以下选择:
打开一个请求并让您的网络团队创建一个新的 LDAP/服务帐户(通用),这样您就不必担心它的密码在接下来的 N 号内被更改。天。
分配该用户或授予其创建从属权限或在其中看到的所有访问权限(从属部分根据您的图像快照)。
使用该用户的用户 ID/密码。您可以在 Jenkins 中创建一个全局变量/使用管理凭据部分来定义用户/密码,并且可以使用 ENV 变量或进行基于凭据的身份验证。
运行你的命令来创建从站,它就会工作,类似于:
$ java -jar swarm-client-2.0-jar-with-dependencies.jar \
-name "$(主机名 -a)_01" \
-fsroot "$(pwd)/$(主机名 -a)_01" \
-master http://my_jenkins_server.my.company.com:8081 \
-disableSsl验证\
-用户名 c123456_or_slaveSpecialUser \
-密码 $p \
-描述“$(主机名-a)”\
-执行者 5\
-标签“Linux CentOS ANSIBLE”\
-模式“正常”\
-重试3\
-显示主机名\
-t java=~/tools/jdk1.8.0_45\
-t gradle=~/tools/gradle-2.9 \
-t Maven=~/tools/apache-maven-3.3.3 \
-t Groovy2=~/tools/groovy-2.4.5 \
--showHostName \
-disableClientsUniqueId
注意:
模式可以是-mode 'exclusive'
使用 -disableClientsUniqueId 选项将根据您的 -name 参数创建名称的从站(而不是使用唯一/字母数字 ID 作为后缀)。
补充:为了在 slave 的配置中创建 Tool 位置,我最初使用 -t **Java=~/tools/jdk1.8.0_45 -t Gradle=~/tools/gradle-2.9* * 并且该命令给了我一个错误Jenkins 上没有定义“Java”工具。
javax.servlet.ServletException: java.lang.RuntimeException: Jenkins 上没有定义“Java”工具。
经过研究,我发现这是因为在我的 Jenkins Master(我使用的)中,Jenkins 全局设置中的 JDK Installations 部分将此工具名称值设置为“java"(全都较低)。
尝试 -t java=~/tools/jdk1.8.0_45 解决了这个问题,现在我可以看到 (JDK) java 工具的值 ~/tools/jdk1.8.0_45 在从站的配置中。
注意:
如果您正在使用“Anonymous”用户连接或想要将您的从站连接到您的 Jenkins 主站(即,您不必提供 -username c123456_or_slaveSpecialUser -password $p参数),然后在 Jenkins Master 中(具有管理员级别权限,仅设置一次)> 在 Manage Roles and Users > 在 GLOBAL Roles 部分下,创建一个角色(或更改现有的 Viewer 角色)并分配“整体 + 读取”和“从属 + 创建”访问权限。
然后,在同一页面的“Slave Roles”下,为 ex: autoslave 或类似的东西创建一个角色并分配所有访问权限(连接、配置、...、删除)和MAKE 确保在其中为 ex:“swarm_slave.*”分配一个模式(正则表达式)。这将做的是,从现在开始,您可以运行 java -jar slave-client-...depedencies.jar without 使用 -username 和 -password 参数,如果您正在创建带有名称的 swarm slave从“swarm_slave....”开始,然后,它们将自动创建/连接/删除(只要 swarm 从属 java 进程将在从属服务器上运行/存在)。
如果您使用 Jenkins Rest/API (groovy) 脚本来维护 swarm slave,遵循从属的标准名称模式也将给予您更多的控制权。
还可以在这里查看更多信息(如何将 ENVIRONMENT 变量添加到新创建的节点):Jenkins Slave - How to add or update ENVIRONMENT variables
下一步是使用 Docker 在从节点上创建容器。不要忘记在此处阅读有关这些内容的更多信息:
http://dockins.github.io/
和
https://wiki.jenkins.io/display/JENKINS/Docker+Slaves+Plugin
https://github.com/jenkinsci/docker-slaves-plugin