jenkins主从节点安装及pipeline构建

一、背景

通过Jenkins主节点配置的pipeline下发给从节点执行,从而兼容容器化执行

二、安装主节点

docker-compose.yml

  jenkins:
    user: root
    restart: always
    image: jenkinsci/blueocean
    container_name: jenkins
    # network_mode: host
    ports:
      - "8081:8080"
      - "50000:50000"
    environment:
      TZ: Asia/Shanghai
      VERSION: 4
    volumes:
      - /var/docker/jenkins/jenkins_home:/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.docker:/root/.docker
      - /etc/localtime:/etc/localtime

直接docker-compose up -d启动即可
在这里插入图片描述
默认装完是2.346.3版本,可以升级到2.4+版本,直接点击首页提示升级即可

三、安装相关依赖

在这里插入图片描述
相关依赖插件:
Docker plugin
Docker Commons Plugin
Docker API Plugin
Docker Pipeline
Permissive Script Security
Build User Vars
Workspace Cleanup

以上均安装后重启jenkins,如果提示:
在这里插入图片描述
如果更新过程中,网络不通,可以切换更新源:
Jenkins的update-center,URL为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在这里插入图片描述
上面安装完成后,可以简单测试一下主节点服务是否正常,正常服务如下:

ubuntu2204@ubuntu2204-virtual-machine:/var/docker/jenkins$ curl 127.0.0.1:8081
<html><head><meta http-equiv='refresh' content='1;url=/login?from=%2F'/><script>window.location.replace('/login?from=%2F');</script></head><body style='background-color:white; color:white;'>


Authentication required
<!--
-->

</body></html>  
ubuntu2204@ubuntu2204-virtual-machine:~$ curl 127.0.0.1:50000
Jenkins-Agent-Protocols: JNLP4-connect, Ping
Jenkins-Version: 2.401.1
Jenkins-Session: 7929d409
Client: 172.18.0.1
Server: 172.18.0.3
Remoting-Minimum-Version: 4.7

从节点搭建

新建节点并保存
在这里插入图片描述
保存后,就能得到一串密钥
在这里插入图片描述
从节点agent的docker-compose.yml文件

  jenkins-agent:
    image: jenkins/inbound-agent:alpine
    container_name: jenkins-agent
    restart: always
    network_mode: host
    user: root
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock  # 关键,使得 agent 能访问 docker
     - /var/docker/jenkins/jenkins:/var/jenkins  # 关键,对应于注册时指定的“远程工作目录”,必须挂载到宿主机上,否则会因为指令传参问题卡死任务
     - /var/docker/jenkins/startup-agent.sh:/var/startup.sh  # 因为需要事先安装 Docker Client 等,在启动脚本处注入部分操作
    command: /var/startup.sh  # 用这个挂载进去的脚本启动

确保/var/docker/jenkins目录存在,没有则创建。

/var/docker/jenkins/startup-agent.sh对应的脚本内容为:

!/usr/bin/env bash
 
# alpine install packages
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
apk add docker-cli tini
 
tini -- /usr/local/bin/jenkins-agent -url http://127.0.0.1:8081 7948f42bc###c1470d802cc02 test

docker-compose up -d后,可以看到
在这里插入图片描述
等一会后,就能看到从节点已连上:
在这里插入图片描述

这里选用的连接方式如下:
在这里插入图片描述
意思是从节点主动连接主节点,默认端口为50000,所以只要确保主节点50000端口放开即可使得从节点连接上。

pipeline测试

new item:选中pipeline类型后点击ok
在这里插入图片描述
pipeline的script输入下文案例并保存
在这里插入图片描述

pipeline {
    agent {
        docker { image 'busybox:latest' }
    }
    stages {
        stage('All') {
            steps {
                echo 'Hello Jenkins and Docker!'
            }
        }
    }
}

点击Build Now
在这里插入图片描述
如图所示:可以发现构建成功,链路闭环
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一个开源的持续集成工具,可以帮助开发人员自动化构建、测试和部署软件。在Jenkins中,可以配置主从节点来分担任务负载,并实现高可用性和水平扩展。 首先,需要在主节点安装Jenkins,并且确保主节点和从节点的网络互通。接着,在主节点的管理界面中,选择“系统管理”->“节点管理”->“新建节点”,填写从节点的信息,如节点名称、描述等。在启动方法中选择“Launch agent via execution of command on the master”,并在远程根目录中填写从节点的工作目录路径。 在从节点安装Jenkins的代理程序,并且确保从节点和主节点Jenkins代理程序版本一致。接着,需要在从节点的代理程序配置中填写连接主节点的信息,如主节点的URL和从节点的凭据。保存配置后,在主节点节点管理界面上可以看到新建的从节点,并且可以通过“在线/离线”按钮来控制从节点的连接状态。 当从节点成功连接到主节点后,可以在Jenkins的任务中指定从节点来执行特定的构建或测试任务。在任务配置中,可以通过“限制构建在某个节点上”来选择从节点,这样就可以将任务分发给不同的节点来执行,实现任务并行处理和负载均衡。 总之,通过以上步骤可以成功配置Jenkins主从节点,实现任务的分布式处理和资源的共享利用,从而提高持续集成和交付的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值