slave-agent.jnlp文件保存在哪

Jenkins(6)
1、挂载slave节点的方法
在Jenkins的Master上,进入Mange node页面,可以管理node节点,例如新加、删除等操作。
新加node节点的页面如下:
Name是节点名字;
Description是节点描述;
# of executors是该节点可以同时运行job的数量;
Remote root directory主要是添加了workspace的目录;
Label是该节点的标签名,在运行job的时候,可以使用该标签指定job运行的node;
Usage是你如何使用该节点,通常选择Utilize this node as much as possible,即尽量使用该节点。
Lance method:是将该node挂载到master上的方法。这里有四个选项,常用的是前两选项,即“Launch slave agents on Unix machine via SSH”和“Launch slave agents via Java Web Start”。本文将详细介绍这两种挂载node的方法。
Availability是你何时连接该节点。通常选择一直连接即可,即“Keep this slave on-line as much as possible”。
2、通过SSH连接node
关于SSH连接slave,jenkins有如下描述:
Launch slave agents on Unix machines via SSH
Starts a slave by sending commands over a secure SSH connection. The slave needs to be reachable from the master, and you will have to supply an account that can log in on the target machine. No root privileges are required.
这段描述的意思是说,选择此种方式连接时,master和slave必须是能够通过ssh进行连接的,必须有slave机器的账号才行,但不要求必须是root账号。
这种方式的前提是需要安装SSH Slaves plugin插件。
这种方式的步骤如下:
1、输入slave节点的IP。
2、Add Credentials:
有如下两种方式:
1)通过Username with password方式
需要知道slave机器的用户名和密码,见下图:
2)通过SSH Username with private key方式
需要先在master机器上生成ssh key pair。生成的 public key放到slave机器的 ~/.ssh/authorized_keys里面。然后chmod 600 ~/.ssh/authorized_keys。
然后,添加连接slave的credential,见下图:
这两种方式的Scope选项,我选择的是System,表示这个Credentials仅仅是用来master和node进行连接用的。还有另外一种是“Global(Jenkins、nodes、items、child items)”,这种scope的Credential可以用来连接git等其他机器。具体选择哪种scope,根据自己的需要。就连接slave这个需求来说,哪种scope的credential都可以。
Username填写在master上生成key pair时使用的用户名。
Private key选择From the jenkins master ~/.ssh
【扩展知识】
Jenkins的SSH Credentials Plugin插件,可以集中管理这些ssh 的key。安装完这个插件,可以在Jenkins上看到这样的页面
这个页面可以对credentials进行添加、删除、修改等操作。在这里设置的credentials在jenkins的其他需要credentials的地方,可以通过下拉菜单选择使用,比如添加slave时,可以直接在Credentials下拉菜单里选择对应的credential就行:
还有git clone代码时:
此时一定要把在master上生成的 public key添加到github账号的的Profile setting页面里的SSH Keys Settings中。
3、通过JNLP连接node
关于这种方式jenkins有如下描述:
Launch slave agents via Java Web Start
Starts a slave by launching an agent program through JNLP. The launch in this case is initiated by the slave, thus slaves need not be IP reachable from the master (e.g. behind the firewall.) It is still possible to start a launch without GUI, for example as a Windows service.
这段话的意思是说,JNLP方式连接salve,不需要master必须能够ssh连接到slave,只需要两者能够ping通即可。这种连接方式的slave还可以作为服务运行在slave的机器上。
这种方式连接slave的步骤如下:
按照上面图片的设置方式设置完成后,点击save,就建好了一个slave节点。如下图所示。
接下来的任务是将该节点连到master上。与ssh方式是master主动连接slave不同,这种JNLP方式是slave主动连接master。
登陆到slave机器上,运行上图中的java -jar 命令,即可将slave连接到master上了。
写了一个脚本,功能主要有:1、可以直接启动slave;2、将slave作为服务安装在slave机器上;3、当slave服务停止后,自动重启。
脚本地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:126796次
积分:2779
积分:2779
排名:第9470名
原创:153篇
转载:39篇
有对自动化测试、持续集成感兴趣的朋友,可以和我交流。
独立博客:
(1)(6)(7)(1)(9)(14)(19)(14)(5)(13)(6)(1)(3)(4)(3)(30)(10)(16)(5)(1)(3)(10)(13)(1)10250人阅读
Java技术(20)
配置jenkins的slave节点
进入jenkins,系统管理,管理节点,新建节点,创建一个dumb slave。
进去其配置页面,主要说明的是launch method
选择 launch slave agents on unix machinesvia ssh
host:机器ip
credentials:授权信息(可在jenkins里配置 add credentials)
选择launchslave agent via java web start,这个方式建议在windows上使用
Fill outthe following:
1.&&&&&&&&&&&Set a&number of executors&(one ormore) as needed.
2.&&&&&&&&&&&Set a&Remote FS Root, a home directory for themaster on the slave machine.
1.&&&&&&&&&&&&&&&&&For a&Windows slave, use something like:&C:\Jenkins\&
2.&&&&&&&&&&&&&&&&&TODO: add details.
3.&&&&&&&&&&&Select the appropriate&Usage&setting:
1.&&&&&&&&&&&&&&&&&For an additional worker:&Utilizethis slave as much as possible&
2.&&&&&&&&&&&&&&&&&For specialized jobs:&Leave thismachine for tied jobs only
4.&&&&&&&&&&&Launch Method:
1.&&&&&&&&&&&&&&&&&An easy way to control a Windows slaveis by using&Launchslave agents via Java Web Start&&(Recommendedfor Windows)
2.&&&&&&&&&&&&&&&&&TODO: add steps for other methods.
5.&&&&&&&&&&&Availability&--&&Keep thisslave online as much as possible
1.&&&&&&&&&&&&&&&&&TODO:&add details for each option.
6.&&&&&&&&&&&Press&OK.
7.&&&&&&&&&&&Now you need to connect your slavemachine to the master using the following steps.
1.&&&&&&&&&&&&&&&&&Open a browser on the&slavemachine&and go tothe&Jenkinsmaster server&url ().
2.&&&&&&&&&&&&&&&&&Go to&Manage Jenkins&&&ManageNodes,&Click onthe newly created slave machine. You will need to login as someone that has the&Connect& Slave permission if you have configured global security.
3.&&&&&&&&&&&&&&&&&Click on the&Launch&button tolaunch agent from browser on slave.
4.&&&&&&&&&&&&&&&&Run the program.
5.&&&&&&&&&&&&&&&&&Nowyou should see the Slave machine connected under
&下面介绍另一种更简单的方式:
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地址。其中的配置可能是这样的:
spec=&1.0+&&codebase=&/computer/192.168.161.34/&&
&information&
&title&Slave Agent for 192.168.161.34&/title&
&vendor&Jenkins project&/vendor&
href=&https://jenkins-ci.org/&/&
&/information&
&security&&all-permissions/&&/security&
&resources&&j2se version=&1.5+&/&&jar
href=&/jnlpJars/remoting.jar&/&&property name=&hudson.showWindowsServiceInstallLink&
value=&true&/&
&/resources&&application-desc
main-class=&hudson.remoting.jnlp.Main&&
&argument&60cad629da21b37c24cd6227edef74b97ff663c5b09e261ac2d5d6&/argument&&argument&irshost12.&/argument&
&argument&/&/argument&
&/application-desc&
确认其中的url地址是上面的正确的地址,而不是localhost,因为我的jenkins部署在本地测试。所以这里就遇到了显示localhost的地址问题。
之所以说这个是因为这个是jenkins的一个bug:
如果直接launch出错,我们就不要在点击launch按钮起启动了,采用命令行去启动也是一样的,命令行的命令上面已经给出了:
命令1: javaws/computer/.com/slave-agent.jnlp
命令2: java -jar
&-secret xxxxx(该字符串就在slave-agent.jnlp文件中)
如果上面的正常的话,过一会几分钟后,这个界面应该就会变成下面的界面,就是多了一个File菜单,下拉这个File菜单就有一个选项他会提示你是否想设置为一个自启动的服务。可能将当前的slave设置成一个服务,每次机器重启的时候都自动启动slave服务,这样就不能每次都去启动这个slave agent了。
#&&&& Master Jenkins服务器端的配置细节&&&&&&&&&&&&&&&&&&&&&&&&&
如果上面的窗口中显示Connected,可是一会有出现了Terminated的状态,那么很可能是因为你的jenkins配置权限的时候没有给匿名用户启动slave的权限:
Two solutions seem to becoming up:
8. &Download the JNLP file (via browser, wget, curl,whatever) then run locally - may require extra parameters.
9. &Go to Manage Jenkins -& Configure Global Security, andunder Project-based Matrix Authorization Strategy, enable “connect” in the“slave” section, for user “Anonymous”. This would leave you open to attackwhere 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没有与master建立连接时,从jenkin页面可以看到怎样通过命令建立连接
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:97236次
积分:1407
积分:1407
排名:千里之外
原创:38篇
转载:20篇
(1)(6)(1)(1)(7)(4)(1)(3)(1)(3)(3)(1)(1)(1)(1)(9)(1)(6)(8)Jenkins 在启动salve时出现无法加载资源,这个要怎么解决_百度知道Jenkins(12)
@& 新建一个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的详细步骤如果需要的话可以在这个地方找到详细的操作步骤:&
(这个可以说是官方的最权限的guideline)。
这里推荐下:An easy way to control a Windows slave is by usingLaunch slave agents via Java Web Start&
(Recommended for Windows)
#&&&& 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地址。其中的配置可能是这样的:
&jnlp spec=&1.0+& codebase=&http://16.158.69.53:9999/jenkins/computer/irshost12./&&&information&&title&Slave Agent for irshost12.&/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&60cad629da21b37c24cd6227edef74b97ff663c5b09e261ac2d5d6&/argument&&argument&irshost12.&/argument&&argument&-url&/argument&&argument&http://16.158.69.53:9999/jenkins/&/argument&&/application-desc&&/jnlp&
确认其中的url地址是上面的正确的地址,而不是localhost,因为我的jenkins部署在本地测试。所以这里就遇到了显示localhost的地址问题。
之所以说这个是因为这个是jenkins的一个bug:
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.
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 mand.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 &-jnlpUrl http://16.158.69.53:9999/jenkins/computer//slave-agent.jnlp
如果出现上面的问题,我们就不要在点击launch按钮起启动了,采用命令行去启动也是一样的,命令行的命令上面已经给出了:
命令1: javaws http://16.158.69.53:9999/jenkins/computer/irshost12.tc.com.com/slave-agent.jnlp
命令2: java -jar &-jnlpUrl
运行命令后,他会弹出一个界面:
如果上面的正常的话,过一会几分钟后,这个界面应该就会变成下面的界面,就是多了一个File菜单,下拉这个File菜单就有一个选项他会提示你是否想设置为一个自启动的服务。可能将当前的slave设置成一个服务,每次机器重启的时候都自动启动slave服务,这样就不能每次都去启动这个slave agent了。
#&&&& Master Jenkins服务器端的配置细节&&&&&&&&&&&&&&&&&&&&&&&&&
如果上面的窗口中显示Connected,可是一会有出现了Terminated的状态,那么很可能是因为你的jenkins配置权限的时候没有给匿名用户启动slave的权限:
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的详细步骤,转载的一个大神的博文
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:13887次
积分:1476
积分:1476
排名:千里之外
原创:137篇
转载:15篇
(2)(12)(5)(2)(18)(4)(1)(1)(9)(4)(20)(34)(17)(16)(7)}

我要回帖

更多关于 jnlp无法启动 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信