esz*_*k.k 2 jenkins jenkins-plugins
我有一个jenkins master和一个单独的slave服务器.我使用swarm插件将slave连接到master.在配置LDAP认证并撤消匿名用户授权之前,一切正常.
显然现在我必须验证swarm客户端,但我无法做到这一点.如果有人有swarm插件的经验,请告诉我.
从机的控制台:
$ java -jar swarm-client-2-0.jar -master http://x.x.x.x:8080/ -username 'exxxx' -password common.pwd
Discovering Jenkins master
Oct 01, 2015 2:14:51 PM org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: basic authentication scheme selected
Oct 01, 2015 2:14:51 PM org.apache.commons.httpclient.HttpMethodDirector processWWWAuthChallenge
INFO: Failure authenticating with BASIC 'Jenkins'@x.x.x.x:8080
Failed to fetch slave info from Jenkins CODE: 401
Retrying in 10 seconds
Run Code Online (Sandbox Code Playgroud)
BR,
Aru*_*gal 11
您至少需要Create Slave权限或更高权限才能使用Swarm插件创建从属.
您有以下选择:
打开一个请求,让您的网络团队创建一个新的LDAP /服务帐户(通用),这样您就不必担心它的密码会在下一个N号内被更改.天.
分配该用户或授予其创建从属权限或所有访问权限(根据您的图像快照的从属部分).
使用该用户的用户ID /密码.您可以在Jenkins中创建全局变量/使用管理凭证部分来定义用户/密码,并且可以使用ENV变量或进行基于凭证的身份验证.
运行你的命令来创建奴隶,它会工作,如:
$ java -jar swarm-client-2.0-jar-with-dependencies.jar \
-name "$(hostname -a)_01" \
-fsroot "$(pwd)/$(hostname -a)_01" \
-master http://my_jenkins_server.my.company.com:8081 \
-disableSslVerification \
-username c123456_or_slaveSpecialUser \
-password $p \
-description "$(hostname -a) " \
-executors 5 \
-labels "Linux CentOS ANSIBLE" \
-mode 'normal' \
-retry 3 \
-showHostName \
-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参数创建具有名称的slave(而不是使用唯一/字母数字ID对其进行后缀).
另外:要在slave的配置中创建Tool位置,我最初使用-t**Java =〜/ tools/jdk1.8.0_45 -t Gradle =〜/ tools/gradle-2.9**并且该命令给了我一个错误没有工具'Java'是在Jenkins上定义的.
javax.servlet.ServletException:java.lang.RuntimeException:在Jenkins上没有定义工具'Java'.
经过研究,我发现这是因为在我的Jenkins Master(我用过的)中,它在Jenkins全局设置中的JDK安装部分将此工具的Name值设置为" java "(全部更低).
尝试-t java =〜/ tools/jdk1.8.0_45解决了这个问题,现在我可以在slave的配置中看到(JDK)带有值〜/ tools/jdk1.8.0_45的 java工具.
注意:
如果您正在连接或想要使用" 匿名 "用户将您的奴隶连接到您的Jenkins主人(即您不必提供-username c123456_or_slaveSpecialUser -password $ p参数),那么在Jenkins Master中(具有管理员级别权限)执行此操作仅限一次)>在管理角色和用户 >在全局角色部分下,创建角色(或更改现有查看者角色)并分配"总体+读取"和"从属+创建"访问.
然后,在同一个页面,在"关于奴隶的角色 ",创建前一个角色:像autoslave或东西,分配所有访问(连接,配置,...,删除)和MAKE确保分配模式为前(正则表达式) :" swarm_slave.* ".这样做,从现在开始,您可以运行java -jar slave-client -... depedencies.jar 而不使用-username和-password参数,如果您要创建名称以"swarm_slave"开头的swarm从属... "然后,他们将自动创建/连接/删除(只要swarm slave java进程将在从属服务器上运行/存在).
如果您使用Jenkins Rest/API(groovy)脚本来维护群集从属,那么遵循标准的从属名称模式也可以为您提供更多控制.
另请参阅此处了解更多信息(如何将环境变量添加到新创建的节点):Jenkins Slave - 如何添加或更新环境变量
下一步是使用Docker在从属节点上创建容器.别忘了在这里阅读更多相关内容:
http://dockins.github.io/ 和 https://wiki.jenkins.io/display/JENKINS/Docker+Slaves+Plugin https://github.com/jenkinsci/docker-slaves-plugin
| 归档时间: |
|
| 查看次数: |
11972 次 |
| 最近记录: |