• Jenkins中Node节点与构建任务


    目录

    节点在 Jenkins 中的主要作用

    1. 分布式构建

    分布式处理

    负载均衡

    2. 提供不同的运行环境

    多平台支持

    特殊环境需求

    3. 提高资源利用率

    动态资源管理

    云端集成

    4. 提供隔离和安全性

    任务隔离

    权限控制

    5. 提高可扩展性

    横向扩展

    高可用性

    Jenkins 主服务器(Master)

    Jenkins 从服务器(Agent)

    准备节点环境

    添加节点

    建立任务

    自动上线测试


    在 Jenkins 中,节点(Node)是指 Jenkins 用于执行构建任务的计算资源。节点的主要作用是提供构建和测试任务的运行环境。通过使用多个节点,Jenkins 可以分布式地执行构建任务,从而提高效率和并行处理能力。

    节点在 Jenkins 中的主要作用

    1. 分布式构建

    分布式处理

    节点允许 Jenkins 将构建任务分布到多个机器上运行,从而实现并行处理。这有助于减少构建时间,特别是对于大型项目或需要运行大量测试的项目。

    负载均衡

    通过在多个节点之间分配任务,Jenkins 可以实现负载均衡,避免单个节点过载。这有助于提高系统的稳定性和性能。

    2. 提供不同的运行环境

    多平台支持

    节点可以运行在不同的操作系统和硬件平台上。通过在不同平台上配置节点,Jenkins 可以针对不同平台进行构建和测试,例如 Windows、Linux 和 macOS。

    特殊环境需求

    有些项目可能需要特定的软件或硬件环境。通过在特定配置的节点上运行构建任务,Jenkins 可以满足这些特殊环境的需求。例如,某些构建任务可能需要特定版本的编译器、库或硬件设备。

    3. 提高资源利用率

    动态资源管理

    通过动态添加或移除节点,Jenkins 可以根据需求调整可用的计算资源。这有助于在高峰期提供更多的计算能力,而在低负载时期减少资源浪费。

    云端集成

    Jenkins 可以集成云计算平台(如 AWS、Azure、Google Cloud),自动启动和关闭云端节点,从而优化资源使用和成本。

    4. 提供隔离和安全性

    任务隔离

    通过在不同的节点上运行构建任务,可以实现任务之间的隔离,避免相互干扰。例如,不同的任务可以在独立的虚拟机或容器中运行,从而提高安全性和稳定性。

    权限控制

    可以对不同的节点设置不同的访问权限,从而控制哪些用户或任务可以在特定节点上运行。这有助于保护敏感的构建环境和数据。

    5. 提高可扩展性

    横向扩展

    通过增加节点数量,Jenkins 可以轻松实现横向扩展,以满足不断增长的构建需求。这种扩展方式通常比增加单个服务器的性能更具成本效益。

    高可用性

    通过在多个节点上运行构建任务,Jenkins 可以提高系统的高可用性。如果某个节点发生故障,其他节点可以继续处理任务,从而减少停机时间。

    在 Jenkins 中,节点(Node)是 Jenkins 运行构建任务的机器。节点可以是 Jenkins 主服务器(Master)或一台或多台从服务器(Agent)。

    Jenkins 主服务器(Master)

    Jenkins 主服务器不仅承担了用户界面和调度任务的职责,还可以运行构建任务。然而,为了提高系统的可扩展性和稳定性,通常建议将实际的构建任务分配给从服务器来运行,而主服务器主要负责管理和调度。

    Jenkins 从服务器(Agent)

    Jenkins 从服务器是由主服务器管理的机器,用于实际运行构建任务。通过分布式的方式,Jenkins 可以将构建任务分发到多个从服务器上,从而提高构建效率和并发能力。

    准备节点环境

    本实验前提环境基于上篇博文配置:Jenkins安装部署与配置-CSDN博客

    现在再新增一台虚拟机,关闭防火墙和selinux,进行时间同步 

    主机名:node01192.168.226.24Rocky_linux9.42核心2G
    1. #修改主机名
    2. [root@localhost ~]# hostnamectl set-hostname node01
    3. #进行时间同步
    4. [root@localhost ~]# systemctl restart chronyd

    在名为jenkins的主机中生成密钥对

    1. #生成密钥对
    2. [root@jenkins ~]# ssh-keygen
    3. #将公钥拷贝到节点node01主机上
    4. [root@jenkins ~]# ssh-copy-id 192.168.226.24

    给node01主机安装JDK

    1. [root@node01 ~]# wget https://download.oracle.com/java/17/archive/jdk-17.0.6_linux-x64_bin.rpm
    2. [root@node01 ~]# yum install -y jdk-17.0.6_linux-x64_bin.rpm
    3. [root@node01 ~]# java -version
    4. java version "17.0.6" 2023-01-17 LTS
    5. Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
    6. Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

    添加节点

    来到主节点机器的web页面

    查看节点信息

    添加节点

    1. #将私钥填入设置里
    2. [root@jenkins ~]# cat .ssh/id_rsa
    3. -----BEGIN OPENSSH PRIVATE KEY-----
    4. b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
    5. NhAAAAAwEAAQAAAYEAsVLvSfO0tSD+3yn3I20BiXuCjaTG1c/DX0V4m8sy6axsJHT3C2S9
    6. J0Binx4lCq6Dv8noc7Zcsmv3s4sKSaaLJ85E3GNqm1A0BzaBWmNIdbEYb7SRo3WXML4ItE
    7. B3W7+Haf2MbYTMfPlLV5l2g8gaxtXs43DjdqUUp1qVElS/R2rWwupZ4Z9quVNlO/dIILdi
    8. ao3ghqUUAYLrEul6uQ/h12XzxbwiSu9TdzhAasrn+Y8rCzC3UULWsHJP5wnlPLE0Gx1ZfO
    9. fqD2eRY7l/vhgak3QnWRXFjMf/KkzWrsdnLSZlvQK8dod0oBEsCBLMRN/g4cqBPvPBcjXb
    10. RO+djLNCVsqTRlvl1aBVchRXfJbh00EhypjdpDGbNUKvvF1mR89S4A+Xzr7IhssNnov3SN
    11. R64Wc8lRvmKZGRcQH9xsiAvGFnru7b3GxPM/N4yPV0GFEgFoOlBOIn5Fcvu0Af0rtEStkX
    12. t4SI+7b4GMVdFjlXtP/mQf7qee+sZ8npnlsdiwSHAAAFiOyx+7PssfuzAAAAB3NzaC1yc2
    13. EAAAGBALFS70nztLUg/t8p9yNtAYl7go2kxtXPw19FeJvLMumsbCR09wtkvSdAYp8eJQqu
    14. g7/J6HO2XLJr97OLCkmmiyfORNxjaptQNAc2gVpjSHWxGG+0kaN1lzC+CLRAd1u/h2n9jG
    15. 2EzHz5S1eZdoPIGsbV7ONw43alFKdalRJUv0dq1sLqWeGfarlTZTv3SCC3YmqN4IalFAGC
    16. 6xLperkP4ddl88W8IkrvU3c4QGrK5/mPKwswt1FC1rByT+cJ5TyxNBsdWXzn6g9nkWO5f7
    17. 4YGpN0J1kVxYzH/ypM1q7HZy0mZb0CvHaHdKARLAgSzETf4OHKgT7zwXI120TvnYyzQlbK
    18. k0Zb5dWgVXIUV3yW4dNBIcqY3aQxmzVCr7xdZkfPUuAPl86+yIbLDZ6L90jUeuFnPJUb5i
    19. mRkXEB/cbIgLxhZ67u29xsTzPzeMj1dBhRIBaDpQTiJ+RXL7tAH9K7RErZF7eEiPu2+BjF
    20. XRY5V7T/5kH+6nnvrGfJ6Z5bHYsEhwAAAAMBAAEAAAGAVA42M938OSgM6QhhiD9xzRPpDO
    21. +g+VVlDVJHG8K0vaPoF1gCizoTl/mjRj3p3Shgd5dkQwWc507auhccp1D1Acd7SOUvcbQR
    22. FaI2qvwJKxDpvnnf15Y0Nvy974PnkGw36nwwBvI+ZLdfiYTLcyh12O8rPZ0Tlfgm1DXSGE
    23. Bn85inePnR5WvGEVeA024imK+VTWE3n1u9IgJHIE3gyLzIl2xSo9bMgqzz6b2We4j3cYr2
    24. InXTUAfY8Qce7Sv5qE1u1O4b3SXcWHHULy6DKSsrZzixWgzxS13QlY6/uAVDUEF2xR1tjU
    25. 4DSCpcEm5op4ZZx0yYa7h64uHlEJ26waiPFCnodQhxtEp2hiymRNqUhwtBEFcNFte6DxWn
    26. yhmbHXKP5r+hBWT1l+hMVGgl1XUVwaZ6Nn9AUvRpHYBKA3vY7g+AM/AKsywyij55/3XT/C
    27. UxqRLjD9RyfhyTpss0YUCjBDBYnGuO083VaM55ShqJqXIOUJcRdstxCDko6OAHcBNRAAAA
    28. wFZp7nol4iIzBOeucvVurHwkAPg+j/cKEQG5YGyZDiSWvnA/GCk8EAeckfDK58zKHYz3ia
    29. YcGHZGflxSvGS4dJUtJx5xOPyAnULjnft2T/gN9FSRPQXnjZUqkhI7M/cIGEd6CHHkjmBa
    30. y4K7kTQjBYFIyeI3zr20/DUKsYuljiX7yuLIOIyUcF1iw30dqcV/zV3NquGvyJLsE62Mr3
    31. 4huaqvXRZeQqR8rJQ8qOF4YWdk0Gy+J0fNyKAeqpp2XzpdmgAAAMEA6JZBDWRESNMmuOHC
    32. sht9xxfI+Y2jfb8XjM9RQ3rgPmksdXsXew+O6xKsoAnv0zsdyUEFall6wKlqj5pf+8S+k7
    33. wYPJu14ACf/z3w5IKX2W7sQe1urRpD5Lz7ZajEUIpkEPLNWAXhmpGG+uzG4SpfDP6K/yRn
    34. Pgp0BqHfEA0qbYRlFWmpkKujRCTlRgl/JvbWIAFbW1wJYLVVfs1wMBHfVgCa9AjXik+jEm
    35. bwxpsecDQ3YVN6BWQG4Q15sMcwF8UVAAAAwQDDLI79Ztv+7U9qdkiDE3eMQ+fzZbFsvKGC
    36. kNfI+BVufmfy7llLmk4MCJDNyNs1WQEmXI8HPdAAmgmdfq3S1BsiZCkR82u66sG4wcNJmy
    37. RWFXNsa5L6JmF+PjgOo5TOKxAfdh65DwHg62uavA/XdtvxclYTNetQay3QnL3B+RaTnmFJ
    38. s1rHohoGxevy/oTfNr2skgrhSIbiTpebxGwgEvQFg2OfqyG7yyoNtDCLxnjrLI+GfZJ07v
    39. 7n365KwQAnwisAAAAMcm9vdEBqZW5raW5zAQIDBAUGBw==
    40. -----END OPENSSH PRIVATE KEY-----

    刷新网页看节点信息,点击node01几点,点击日志可以看到信息

     

    现在将该node01节点下线,进行后续操作

     

    建立任务

    下面会使用到此博文的极狐gitlab : 极狐Gitlab使用(1)-CSDN博客

    登录gitlab的web管理页面,选择一个用户进入创建访问令牌

    返回jenkins的web页面

    在jenkins主机的工作空间中查看

    1. [root@jenkins ~]# cd .jenkins/workspace/
    2. [root@jenkins workspace]# ll
    3. total 0
    4. drwxr-x--- 4 root root 54 Jul 11 20:40 test001
    5. drwxr-x--- 2 root root 6 Jul 11 20:40 test001@tmp
    6. [root@jenkins workspace]# cd test001
    7. [root@jenkins test001]# ll
    8. total 8
    9. -rw-r----- 1 root root 6163 Jul 11 20:40 README.md
    10. drwxr-x--- 2 root root 24 Jul 11 20:40 xiaoliceshi
    11. [root@jenkins test001]# cd xiaoliceshi/
    12. [root@jenkins xiaoliceshi]# ll
    13. total 4
    14. -rw-r----- 1 root root 67 Jul 11 20:40 index.html
    15. [root@jenkins xiaoliceshi]# cat index.html
    16. 这是一个测试
    17. sdsxcbc
    18. cb
    19. ccvvc