Jenkins Pipeline node和agent的区别与联系

本文详细阐述了Jenkins中node,agent及slave的概念及其在不同pipeline类型中的应用。对比了表述性pipeline与脚本化pipeline的特点,介绍了如何使用agent和node进行任务调度与资源分配,为读者提供了深入理解Jenkins自动化构建流程的视角。

联系:node, agent以及slave都用来指被Jenkins master管理的用来执行Jenkins jobs的服务器。

区别:agents用在表述性pipeline中,可以不仅仅是nodes,还可以是docker container等

           nodes用在脚本化pipeline中。

表述性pipeline

所有操作都在pipeline块中执行,格式如下:

pipeline
{
//pipeline can be defined here
}

脚本化pipeline

绝大多数操作都在node中执行,格式如下:

node{
stage("A"){
}
// ... stages
}

Agent在表述性pipeline中的应用

agent必须在pipeline的顶端定义,也可在stage的顶端定义。例如

pipeline {
  agent none
  stages {
    stage("Stage A") {
      agent any
    } // stage
    stage("Stage B") {
      agent { label 'my-defined-label' } 
    } //stage
  } // stages
}

Node在脚本化pipeline中的应用

在脚本pipeline中,一个或者多个node块来完成整个pipeline的核心工作。在脚本pipeline中,node并不是必须的。但是,node中的pipeline可以完成两样工作:

1. 一个块就是一个queue,只要node中又可用的executor,则块中的模块就会执行。

2. 创建工作区间。

node {  
    stage('Build') { 
        // 
    }
    stage('Test') { 
        // 
    }
    stage('Deploy') { 
        // 
    }
}
node {
    stage('ReBuild') { 
        // 
    }
    stage('ReTest') { 
        // 
    }
    stage('ReDeploy') { 
        // 
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值