Jenkins2 学习系列21 -- 通过JNLP协议添加Slave节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins2 学习系列21 -- 通过JNLP协议添加Slave节点相关的知识,希望对你有一定的参考价值。

参考技术A Java 网络启动协议(JNLP) 是一种允许客户端启动托管在远程Web服务器上的应用程序的协议。
通过 JNLP 协议增加 agent 比较简单,步骤如下:

提示连接agent有两种方式:

SSH 登录 slave 机器上,然后运行master上提供的连接命令

连接成功

[ci]jenkins-slave的添加

jenkins-slave的添加-在vm上通过jnlp方式

参考:http://www.cnblogs.com/sparkdev/p/7102622.html

下载 slave.jar和slave-agent.jnlp

启动slave(slave事先要安装好java)

java -jar slave.jar -jnlpUrl http://192.168.xx:8080/computer/no2/slave-agent.jnlp -secret b9bfa768bd36e622cb883fc4edf5553042a7c8190793e4658ef9a0692599437d -workDir "/data/jenkins"

查看节点状态

可以执行shell命令

缺点:

  • 需要在slave端手动下载slave-agent.jnlp和slave.jar
  • 需要在slave端手动java -jar 启动

jenkins-slave的添加-在vm上通过ssh用户名密码方式--推荐方法(最佳实践)

参考:http://blog.csdn.net/jiang1986829/article/details/51141731

slave上看进程,发现就是java -jar 启动了个slave.jar包.

用新添加的node构建一个项目

node(\'no2\'){
    git "https://github.com/lannyMa/java-helloword.git"
    state: \'clean\'
    sh \'mvn clean\'
    stage \'package\'
    sh \'mvn package\'
    stage \'test\'
    sh \'java -jar target/testweb-v1.0.jar\'
}

发现slave的mvn找不到.可是我/etc/profile里和master配置一样.
master是这样配置的: 安装jdk mvn,均是源码包.然后添加/etc/profile, 然后直接新建pipeline即可(不用在jenkins里添加任何jdk mvn路径),即可运行构建.

解决: 修改no2节点的环境变量

PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin:/usr/local/maven/bin:/root/bin


重新构建即构建成功

构建结果存在了slave的workdir里了.(这里不存在回传给master之类的说法)

以上是关于Jenkins2 学习系列21 -- 通过JNLP协议添加Slave节点的主要内容,如果未能解决你的问题,请参考以下文章

为 JNLP 配置权限:

Jenkins2 入门到精通(学习资料)

Java 11 迁移上的 Applet/JNLP

如何通过 jnlp 提供带有许多 webapps 的码头?

Java千百问_08JDK详解(011)_jnlp文件是什么

[java] JNLP文件安装