设为首页 收藏本站
查看: 1143|回复: 0

[经验分享] 配置Jenkins的slave节点的详细步骤适合windows等其他平台

[复制链接]

尚未签到

发表于 2018-1-7 11:37:34 | 显示全部楼层 |阅读模式
  @  新建一个slave节点在Jenkins服务器上
  1,进入Jenkins的主界面,进入“Manage Jenkins” 页面;
  2,点击如下图中的“Manage  Nodes”:

  3,进入页面后点击“New Nodes”链接,直接选择新建一个“Dumb Slave” 点击保存即可;
  4,配置刚刚新建的这个slave的相关信息,打开这个slave进入configuration界面:

  上面中的只有一个需要强调了,就是“Launch method”,我们这里选择的是 “Launch slave agent via java Web Start ”,这个方式建议在windows上使用最好。下面的介绍也是针对的这种launch模式的。
  关于这个配置slave的详细步骤如果需要的话可以在这个地方找到详细的操作步骤:https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines  (这个可以说是官方的最权限的guideline)。
  这里推荐下:An easy way to control a Windows slave is by using Launch slave agents via Java Web Start  (Recommended for Windows)
  #     Slave远程机器的配置细节
  1,进入需要控制的远程机器上,一定要进入远程的slave机器,而不是你的master机器。输入对应的你的jenkins的地址,例如这里:
  http://16.158.69.53:9999/jenkins/computer/
  点击进入对应的该slave机器的图标进入:此时可能会报一些错误,不用管。
  点击图中的launch按钮,他会提示你下载该文件slave-agent.jnlp.按照提示下载该文件,并保存在本地。我们这里需要确认两个问题是否存在:
  问题一,确认slave-agent.jnlp 是用javaws来运行的,而不是java.exe 或者是javaw.exe来运行,因为一般的机器默认是采用java.exe启动的。我曾经因为这个问题折腾了好久。
  问题二,将slave-agent.jnlp用notepad打开后,确认其中的URL是可用的Jenkins地址。其中的配置可能是这样的:
<jnlp spec="1.0+" codebase="http://16.158.69.53:9999/jenkins/computer/irshost12.tc.tb.com/">  
<information>
  
<title>Slave Agent for irshost12.tc.tb.com</title>
  
<vendor>Jenkins project</vendor>
  
<homepage href="https://jenkins-ci.org/"/>
  
</information>
  
<security><all-permissions/></security>
  
<resources><j2se version="1.5+"/><jar href="http://16.158.69.53:9999/jenkins/jnlpJars/remoting.jar"/><property name="hudson.showWindowsServiceInstallLink" value="true"/>
  
</resources><application-desc main-class="hudson.remoting.jnlp.Main">
  
<argument>60c101541d377ad629da21b37c24cd6227edef74b97ff663c5b09e261ac2d5d6</argument><argument>irshost12.tc.tb.com</argument><argument>-url</argument>
  
<argument>http://16.158.69.53:9999/jenkins/</argument>
  
</application-desc>
  
</jnlp>
  

  

  确认其中的url地址是上面的正确的地址,而不是localhost,因为我的jenkins部署在本地测试。所以这里就遇到了显示localhost的地址问题。
  之所以说这个是因为这个是jenkins的一个bug:http://stackoverflow.com/questions/11287845/jenkins-slave-cant-get-started
  Jenkins does not use the "Jenkins URL" setting for a lot of things, but establishing connection with Java Web Start slaves is one of them, so please ensure "Jenkins URL" in the master configuration is set correctly.
  以上的配置完成后,如果点击lanch按钮,可能会报一下的错误:

Slave irshost12.tc.tb.com
  Connection was broken
java.net.SocketException: Connection reset  
at java.net.SocketInputStream.read(SocketInputStream.java:168)
  
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
  
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
  
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2252)
  
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2545)
  
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2555)
  
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1294)
  
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
  
at hudson.remoting.Command.readFrom(Command.java:92)
  
at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:72)
  
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)
  

  

  Connect slave to Jenkins one of these ways:


  • Launch agent from browser on slave

  •   Run from slave command line:
    javaws http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com.com/slave-agent.jnlp  

  •   Or if the slave is headless:
    java -jar slave.jar -jnlpUrl http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com/slave-agent.jnlp
如果出现上面的问题,我们就不要在点击launch按钮起启动了,采用命令行去启动也是一样的,命令行的命令上面已经给出了:命令1: javaws http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com.com/slave-agent.jnlp命令2: java -jar slave.jar -jnlpUrl http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com/slave-agent.jnlp 运行命令后,他会弹出一个界面: 如果上面的正常的话,过一会几分钟后,这个界面应该就会变成下面的界面,就是多了一个File菜单,下拉这个File菜单就有一个选项他会提示你是否想设置为一个自启动的服务。可能将当前的slave设置成一个服务,每次机器重启的时候都自动启动slave服务,这样就不能每次都去启动这个slave agent了。  

  #     Master Jenkins服务器端的配置细节
如果上面的窗口中显示Connected,可是一会有出现了Terminated的状态,那么很可能是因为你的jenkins配置权限的时候没有给匿名用户启动slave的权限:http://stackoverflow.com/questions/14277512/problems-launching-the-slave-agent-via-java-web-start-on-jenkins  

  Two solutions seem to be coming up:


  • Download the JNLP file (via browser, wget, curl, whatever) then run locally - may require extra parameters.
  • Go to Manage Jenkins -> Configure Global Security, and under Project-based Matrix Authorization Strategy, enable “connect” in the “slave” section, for user “Anonymous”. This would leave you open to attack where someone emulates a slave (but in my case, on a private work network - that's not an issue.)
  具体操作是进入jenkins主界面,然后进入Manage Jenkins -> Configure Global Security ,勾选其中的anonymous用户的slave部分的权限。如下:

  以上的就是配置远程机器作为slave的详细步骤,如果又不太理解的,可以email我:alterhu2020@gmail.com 。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432525-1-1.html 上篇帖子: 搭建持续集成单元测试平台(Jenkins+Ant+Java+Junit+SVN) 下篇帖子: Jenkins+Ant+Jmeter接口自动化集成测试实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表