配置Jenkins的slave节点的详细步骤适合windows等其他平台
2014-03-05 14:56
465 查看
@新建一个slave节点在Jenkins服务器上
1,进入Jenkins的主界面,进入“ManageJenkins”页面;
2,点击如下图中的“ManageNodes”:
3,进入页面后点击“NewNodes”链接,直接选择新建一个“DumbSlave”点击保存即可;
4,配置刚刚新建的这个slave的相关信息,打开这个slave进入configuration界面:
上面中的只有一个需要强调了,就是“Launchmethod”,我们这里选择的是“LaunchslaveagentviajavaWebStart”,这个方式建议在windows上使用最好。下面的介绍也是针对的这种launch模式的。
关于这个配置slave的详细步骤如果需要的话可以在这个地方找到详细的操作步骤:https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines
(这个可以说是官方的最权限的guideline)。
这里推荐下:AneasywaytocontrolaWindowsslaveisbyusingLaunchslave
agentsviaJavaWebStart(RecommendedforWindows)
#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地址。其中的配置可能是这样的:
确认其中的url地址是上面的正确的地址,而不是localhost,因为我的jenkins部署在本地测试。所以这里就遇到了显示localhost的地址问题。
之所以说这个是因为这个是jenkins的一个bug:http://stackoverflow.com/questions/11287845/jenkins-slave-cant-get-started
Jenkinsdoesnotusethe"JenkinsURL"settingforalotofthings,butestablishingconnectionwithJavaWebStartslavesisoneofthem,sopleaseensure"JenkinsURL"inthemasterconfigurationissetcorrectly.
以上的配置完成后,如果点击lanch按钮,可能会报一下的错误:
Connectionwasbroken
ConnectslavetoJenkinsoneoftheseways:
Launch
agentfrombrowseronslave
Runfromslavecommandline:
1,进入Jenkins的主界面,进入“ManageJenkins”页面;
2,点击如下图中的“ManageNodes”:
3,进入页面后点击“NewNodes”链接,直接选择新建一个“DumbSlave”点击保存即可;
4,配置刚刚新建的这个slave的相关信息,打开这个slave进入configuration界面:
上面中的只有一个需要强调了,就是“Launchmethod”,我们这里选择的是“LaunchslaveagentviajavaWebStart”,这个方式建议在windows上使用最好。下面的介绍也是针对的这种launch模式的。
关于这个配置slave的详细步骤如果需要的话可以在这个地方找到详细的操作步骤:
(这个可以说是官方的最权限的guideline)。
这里推荐下:AneasywaytocontrolaWindowsslaveisbyusingLaunchslave
agentsviaJavaWebStart(RecommendedforWindows)
#Slave远程机器的配置细节
1,进入需要控制的远程机器上,一定要进入远程的slave机器,而不是你的master机器。输入对应的你的jenkins的地址,例如这里:
点击进入对应的该slave机器的图标进入:此时可能会报一些错误,不用管。
点击图中的launch按钮,他会提示你下载该文件slave-agent.jnlp.按照提示下载该文件,并保存在本地。我们这里需要确认两个问题是否存在:
问题一,确认slave-agent.jnlp是用javaws来运行的,而不是java.exe或者是javaw.exe来运行,因为一般的机器默认是采用java.exe启动的。我曾经因为这个问题折腾了好久。
问题二,将slave-agent.jnlp用notepad打开后,确认其中的URL是可用的Jenkins地址。其中的配置可能是这样的:
<jnlpspec="1.0+"codebase="http://16.158.69.53:9999/jenkins/computer/irshost12.tc.tb.com/"> <information> <title>SlaveAgentforirshost12.tc.tb.com</title> <vendor>Jenkinsproject</vendor> <homepagehref="https://jenkins-ci.org/"/> </information> <security><all-permissions/></security> <resources><j2seversion="1.5+"/><jarhref="http://16.158.69.53:9999/jenkins/jnlpJars/remoting.jar"/><propertyname="hudson.showWindowsServiceInstallLink"value="true"/> </resources><application-descmain-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:
Jenkinsdoesnotusethe"JenkinsURL"settingforalotofthings,butestablishingconnectionwithJavaWebStartslavesisoneofthem,sopleaseensure"JenkinsURL"inthemasterconfigurationissetcorrectly.
以上的配置完成后,如果点击lanch按钮,可能会报一下的错误:
Slaveirshost12.tc.tb.com
Connectionwasbrokenjava.net.SocketException:Connectionreset atjava.net.SocketInputStream.read(SocketInputStream.java:168) atjava.io.BufferedInputStream.fill(BufferedInputStream.java:218) atjava.io.BufferedInputStream.read(BufferedInputStream.java:237) atjava.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2252) atjava.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2545) atjava.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2555) atjava.io.ObjectInputStream.readObject0(ObjectInputStream.java:1294) atjava.io.ObjectInputStream.readObject(ObjectInputStream.java:348) athudson.remoting.Command.readFrom(Command.java:92) athudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:72) athudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)
ConnectslavetoJenkinsoneoftheseways:
Launch
agentfrombrowseronslave
Runfromslavecommandline:
javaws'target='_blank'>http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com.com/slave-agent.jnlp[/code]
Oriftheslaveisheadless:java-jarslave.jar-jnlpUrl 'target='_blank'>http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com/slave-agent.jnlp[/code] 如果出现上面的问题,我们就不要在点击launch按钮起启动了,采用命令行去启动也是一样的,命令行的命令上面已经给出了:命令1:javaws'target='_blank'>http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com.com/slave-agent.jnlp[/code] 命令2:java-jarslave.jar-jnlpUrl http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com/slave-agent.jnlp 运行命令后,他会弹出一个界面: 如果上面的正常的话,过一会几分钟后,这个界面应该就会变成下面的界面,就是多了一个File菜单,下拉这个File菜单就有一个选项他会提示你是否想设置为一个自启动的服务。可能将当前的slave设置成一个服务,每次机器重启的时候都自动启动slave服务,这样就不能每次都去启动这个slaveagent了。
#MasterJenkins服务器端的配置细节如果上面的窗口中显示Connected,可是一会有出现了Terminated的状态,那么很可能是因为你的jenkins配置权限的时候没有给匿名用户启动slave的权限:http://stackoverflow.com/questions/14277512/problems-launching-the-slave-agent-via-java-web-start-on-jenkins
Twosolutionsseemtobecomingup:
DownloadtheJNLPfile(viabrowser,wget,curl,whatever)thenrunlocally-mayrequireextraparameters.
GotoManageJenkins->ConfigureGlobalSecurity,andunderProject-basedMatrixAuthorizationStrategy,enable“connect”inthe“slave”section,foruser“Anonymous”.Thiswouldleaveyouopen
toattackwheresomeoneemulatesaslave(butinmycase,onaprivateworknetwork-that'snotanissue.)
具体操作是进入jenkins主界面,然后进入ManageJenkins->ConfigureGlobalSecurity,勾选其中的anonymous用户的slave部分的权限。如下:
以上的就是配置远程机器作为slave的详细步骤,如果又不太理解的,可以email我:alterhu2020@gmail.com。
转载:http://www.cnblogs.com/juddhu/archive/2013/07/18/3198191.html
相关文章推荐
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- mysql模拟题二
- Hive中小表与大表关联(join)的性能分析
- windows phone xaml文件中元素及属性(10)
- POJ 3264 Balanced Lineup -- RMQ或线段树
- str_replace使用
- Linux系统基础-管理之系统启动过程及系统初始化学习总结
- LeetCode OJ --问题与解答 Binary Tree Preorder Traversal
- java求100以内的素数示例分享
- 跟一下wpa_supplicant(1) 初始化
- 淘宝api的简单调用
- Jetty 的工作原理以及与 Tomcat 的比较
- 小心删除容器中元素时的迭代器失效
- windows phone 墓碑化(9)
- jenkins中Deploy to container Plugin插件发布配置
- DOM、JDOM、DOM4J的区别(转载)
- 语义化的软件版本号规则,你是否真的了解软件的版本号
- 防止阻燃输送带撕裂妙招
- 使Panorama的PanoramaItem右侧的预览区域不显示,即PanoramaItem完全覆盖屏幕的方法
- 实现两个N*N矩阵的乘法,矩阵由一维数组表示