热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jenkins配置agent

jenkinsanget配置Master-Slaves(agent)模式多个任务都在master节点执行,对master节点的性能会造成一定影响,如何将任务分散到不同的节点,做成多

jenkins anget 配置

Master-Slaves(agent)模式

多个任务都在master节点执行,对master节点的性能会造成一定影响,如何将任务分散到不同的节点,做成多slave的方式?


1. 添加slave节点



  • 系统管理 -> 节点管理 -> 新建节点

    image-20220726090053547


  • 比如添加172.21.32.5,选择固定节点,保存

    image-20220726090128282


  • 远程工作目录 /opt/jenkins_jobs



  • 标签为任务选择节点的依据,如172.21.32.5;进行任务分配时的一个依据



  • 启动方式选择通过java web启动代理,代理是运行jar包,通过JNLP(是一种允许客户端启动 托管在远程Web服务器上的应用程序的协议 )启动连接到master节点服务中image-20220724220331342



![image-20220726091035097](/Users/liulei/Library/Application Support/typora-user-images/image-20220726091035097.png)

注意:这里 Use WebSocket 一定要点上;



  1. 执行java命令启动agent服务

    image-20220724221021986

    ## 登录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
    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


  2. 查看Jenkins节点列表,新节点已经处于可用状态

    image-20220724220422776



  3. 测试使用新节点执行任务



    • 配置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




  1. 生成凭据

    ssh-keygen -f ~/.ssh/id_rsa -P '' -q
    # 将密钥分发到 agent
    ssh-copy-id ec2-user@10.23.1.33
    # 测试 master 节点 登录 agent 节点
    ssh ec2-user@10.23.1.33


  2. 在jenkins 中配置凭据

    Jenkins选择:系统管理→manage credentials

    image-20220726103446440

    image-20220726103606918

    然后填入 私钥

    username:填写要连接的 agent 服务器的ssh用户



  3. 在Jenkins中新建一个节点

    image-20220726103806914

    启动方式选择 ssh 方式,主机填写 agnet IP地址

    image-20220726103855330

    密钥这里选择 上边我们创建的密钥;,Host Key Verification Strategy 选择合适的选项;

    保存,接下来点击该节点。



  4. /opt/jenkins_jobs/ 目录准备

    在agent 上要准备该目录,然后将该目录 授予 jenkins master 远程用户的 权限

    chown ec2-user.ec2-user /opt/jenkins_jobs -R


  5. jenkins 页面启用该节点

    image-20220726104144070



jenkins agent 到这里就配置完毕;


总结

两种方式,用那种都可以;本人选择第二种;

作者:Star-Hitian,转载请注明原文链接:https://www.cnblogs.com/Star-Haitian/p/16520100.html



推荐阅读
author-avatar
居生扬_977
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有