jenkins 配置 agent
jenkins anget 配置
Master-Slaves(agent)模式
多个任务都在master节点执行,对master节点的性能会造成一定影响,如何将任务分散到不同的节点,做成多slave的方式?
1. 添加slave节点
-
系统管理 -> 节点管理 -> 新建节点
-
比如添加172.21.32.5,选择固定节点,保存
-
远程工作目录 /opt/jenkins_jobs
-
标签为任务选择节点的依据,如172.21.32.5;进行任务分配时的一个依据
-
启动方式选择通过java web启动代理,代理是运行jar包,通过JNLP(是一种允许客户端启动 托管在远程Web服务器上的应用程序的协议 )启动连接到master节点服务中
![image-20220726091035097](/Users/liulei/Library/Application Support/typora-user-images/image-20220726091035097.png)
注意:这里 Use WebSocket
一定要点上;
-
执行java命令启动agent服务
## 登录172.21.32.5,下载agent.jar # 下载命令在 agnet 节点配置页面可以找到 $ wget http://jenkins.qq.com/jnlpJars/agent.jar ## 会提示找不到agent错误,因为没有配置地址解析,由于连接jenkins master会通过50000端 口,直接使用cluster-ip $ kubectl -n jenkins get svc #在master节点执行查询cluster-ip地址 NAME TYPE CLUSTER-IP EXTERNAL-IP jenkins ClusterIP 10.99.204.208 <none> 4h8m PORT(S) AGE 8080/TCP,50000/TCP ## 再次回到131节点 $ wget 10.99.204.208:8080/jnlpJars/agent.jar $ java -jar agent.jar -jnlpUrl http://10.99.204.208:8080/computer/172.21.32.5/slave-agent.jnlp -secret 4be4d164f861d2830835653567867a1e695b30c320d35eca2be9f5624f8712c8 -workDir "/opt/jenkins_jobs" ... INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping] Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Agent discovery successful Agent address: 10.99.204.208 Agent port: 50000 Identity: e4:46:3a:de:86:24:8e:15:09:13:3d:a7:4e:07:04:37 Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Handshaking Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Connecting to 10.99.204.208:50000 Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Trying protocol: JNLP4-connect Apr 01, 2020 7:04:02 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Remote identity confirmed: e4:46:3a:de:86:24:8e:15:09:13:3d:a7:4e:07:04:37 Apr 01, 2020 7:04:03 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Connected
-
查看Jenkins节点列表,新节点已经处于可用状态
-
测试使用新节点执行任务
-
配置free项目
-
限制项目的运行节点 ,标签表达式选择 172.21.32.5
-
立即构建
-
查看构建日志
Started by user admin Running as SYSTEM Building remotely on 172.21.32.5 in workspace /opt/jenkins_jobs/workspace/free-demo using credential gitlab-user Cloning the remote Git repository Cloning repository http://152.136.62.143/root/myblog.git > git init /opt/jenkins_jobs/workspace/free-demo # timeout=10 ...
-
方式二(使用ssh方式添加 salve 节点)
有时候使用 上边方式 配置agent 不好使。可以使用 ssh 方式配置 agent
-
生成凭据
ssh-keygen -f ~/.ssh/id_rsa -P '' -q # 将密钥分发到 agent ssh-copy-id ec2-user@10.23.1.33 或者登录 agnet 手动导入公钥,公钥存放位置 cat /home/ec2-user/.ssh/authorized_keys 直接将 master 上的公钥导入其中,master 公钥存放位置 cat ~/.ssh/id_rsa.pub 将 master 上的公钥,复制;粘贴到 slave 上就可以; # 测试 master 节点 登录 agent 节点 ssh ec2-user@10.23.1.33
-
在jenkins 中配置凭据
Jenkins选择:系统管理→manage credentials
然后填入 私钥
username:填写要连接的 agent 服务器的ssh用户
-
在Jenkins中新建一个节点
启动方式选择 ssh 方式,主机填写 agnet IP地址
密钥这里选择 上边我们创建的密钥;,
Host Key Verification Strategy
选择合适的选项;保存,接下来点击该节点。
-
/opt/jenkins_jobs/ 目录准备
在agent 上要准备该目录,然后将该目录 授予 jenkins master 远程用户的 权限
chown ec2-user.ec2-user /opt/jenkins_jobs -R
-
jenkins 页面启用该节点
jenkins agent 到这里就配置完毕;
总结
两种方式,用那种都可以;本人选择第二种;
本文来自博客园, 作者:Star-Hitian, 转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/p/16520100.html