devops-3:Jenkins增加静态节点
Jenkins管理静态节点
Jenkins搭建完成后一般只有一个master节点,此节点主要用于管理Jenkins配置,如果再在master节点上跑一系列的Job,未免有点太勉强,并且如果出现资源紧缺的现象,会影响到整个Jenkins的使用,所有一般我们会添加slave(agent)节点,使master节点专注于管理、构建,slave节点进行具体Job的运行。
Jenkins增加slave节点分为静态和动态两种,静态方式就是增加一个固定的节点,这个节点会一直在Jenkins中,动态的目前有docker和k8s等方式,本节主要介绍静态增加节点,动态方式下节介绍。
静态增加节点的方式
静态增加agent节点主要有以下几种方式:
- Launch agent via SSH:通过ssh方式增加节点,此方式需要以下几步:
- 节点机器必须有java环境
- ssh用户名+密码方式或者用户名+秘钥方式连接
- Java Web方式启动代理:这种方式,新增好Jenkins节点后,会出现一条加入命令,在目标机执行命令即可。使用此方式前提:
- 目标机有Java环境
- 提前下载好agent.jar这个包
- Launch agent via execution of command on the master:通过在master节点执行某些命令或者脚本来启动agent节点,一般当master可以免密操作另外一台机器时使用
增加节点示例
Java Web方式启动代理
-
系统管理—>节点管理—>新建节点
-
主要设置能同时运行的任务数,以及agent启动方式,远程工作的家目录等
-
保存后,agent是一个未连接的状态,需要点击agent的名字,然后根据提示配置agent端
-
使用java启动agent进程
-
登录agent机器,下载agent.jar包,启动进程即可(可以后台启动)
# wget http://10.85.142.151:8080/jnlpJars/agent.jar # java -jar agent.jar -jnlpUrl http://10.85.142.151:8080/computer/javaweb/jenkins-agent.jnlp -secret @secret-file -workDir "/home/jenkins"
Launch agent via SSH方式启动代理
-
先添加ssh凭据,可以使用账号密码的形式,也可以使用私钥连接,看实际情况
-
创建完成之后,添加agent节点,选择SSH方式
要选择一个主机秘钥验证策略,选择know_hosts文件方式即可,然后要在jenkins主机的存储目录下创建.ssh目录,保存known_hosts文件,不然会报错找不到.ssh/known_hosts文件。
-
ssh可以连接到目标机器,agent即可正常使用
此两种方式比较灵活,推荐使用,也完全可以把命令放到容器中启动,以docker方式运行。