vlambda博客
学习文章列表

Jenkins 添加Linux固定代理节点

实践环境

Jenkins 2.304

jdk-8u131-linux-x64.rpm

centos-release-7-9.2009.1.el7.centos.x86_64

操作步骤

安装JDK

在预新建结点机上安装JDK,并配置好相关环境变量(过程略)

新建结点

配置结点

图2

配置好后,保存,启动结点即可。

结点配置说明

Number of executors

执行器数量,即该节点支持的最大并发构建数。建议配置成和结点逻辑CPU数一样

代理节点(非 master 节点)必须至少拥有一个执行器。如需暂时阻止其执行构建,请使用其页面右上方的临时断开此节点按钮。

对于 master 节点,设置执行器的数目为零将会阻止在其上执行构建

工作目录

代理节点需要为Jenkins提供一个专门的目录。可以在这里配置该目录在节点机上的本地路径,最好是绝对路径,比如 /var/jenkins or c:\jenkins

如果使用相对路径,比如 ./jenkins-agent,该路径相对于由launch方法提供的工作目录

  • 针对由Jenkins控制启动代理进程的启动器,比如SSH,当前工作目录都是通常是一致的,比如用户主目录。
  • 对于不由Jenkins控制启动的代理进程,比如通过命令行启动的内置代理, 当前工作目录可能因启动器而异。使用相对路径可能会引发问题。

注意:建议如果无特殊情况,配置为用户主目录。如果SSH连接使用的用户,无权限访问该工作目录时,会导致Jenkins无法拷贝必要文件,报类似如下错误:

java.io.IOException: Could not copy remoting.jar into '/root/jenkins' on agent

说明:错误提示中的root/jenkins为配置的工作目录

标签

标签用来对多节点分组,标记之间用空格分隔.例如refression java6将会把一个节点标记上regressionjava6.

举例来说,如果你有多个Windows系统的构建节点并且你的Job也需要在Windows系统上运行,那么你可以配置所有的Windows系统节点都标记为windows, 然后限制Job只能在label为windows的机器上执行,这样的话你的Job就不会运行在除了Windows节点以外的其它节点之上了.

用法

控制Jenkins如何在这台机器上安排构建.

  • 尽可能的使用这个节点

    这是默认和常用的设置。在这种模式下,Jenkins会尽可能的使用这个节点。任何时候如果一个构建能使用这个节点构建,那么Jenkins就会使用它.

  • 只允许运行绑定到这台机器的Job

    这种模式下,Jenkins只会构建哪些分配到这台机器的Job。

环境变量

此处定义的环境变量将可用于该代理执行的每次构建,并将覆盖与“系统管理>>系统配置>>全局配置”定义的环境变量任何同名环境变量。LInux上变量使用语法:$NAME${NAME}, WIndows上变量使用语法:%NAME%,这些变量可以在Jenkins Job配置中使用,也可以在由构建启动的进程中使用。

Jenkins还支持一种特殊的语法BASE+EXTRA,该语法允许在这里添加多个键值对,这些键值对将被添加到现有的环境变量中。

如下,如果你有一台PATH=/usr/bin的机器,你可以在这里定义一个键为PATH+LOCAL_BIN和值为/usr/LOCAL/bin的环境变量来添加到标准PATH中。这将导致PATH=/usr/local/bin:/usr/bin在该节点在执行构建期间被导出,同时PATH+LOCAL_BIN=/usr/local/bin也会被导出。

图3

根据环境变量名称(即上述配置的“”键”)中的“EXTRA”部分的字母顺序,在“BASE”变量前面加上多个条目。

注意:如果如果该键值为空或仅为空白,则不会将其添加到环境中,也不会覆盖或重置可能已存在的同名环境变量(例如,系统定义的变量)。