Jenkins Pipeline使用

本文介绍了Jenkins Pipeline的语法结构,包括Stage、Node和Step的概念及其作用。Stage定义了构建流程的逻辑阶段,Node指代执行任务的服务器,Step是执行的具体操作。此外,还展示了如何在Pipeline中使用environment设置环境变量,sshagent进行远程构建,以及如何通过k8s操作与Kubernetes集群交互,执行kubectl命令进行部署和更新应用镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、pipeline 语法

Stage:阶段,一个 pipline 可以划分为若干个 stage,每个 stage 都是一个操作,比如clone 代码、代码编译、代码测试和代码部署,阶段是一个逻辑分组,可以跨多个 node
执行。
Node:节点,每个 node 都是一个 jenkins 节点,可以是 jenkins master 也可以是jenkins agent,node 是执行 step 的具体服务器。
Step:步骤,step 是 jenkins pipline 最基本的操作单元,从在服务器创建目录到构建容器镜像,由各类 Jenkins 插件提供实现,例如: sh “make”

2、pipeline插件使用

2.1、environment

environment {
    SERVICE = "cms"
}    

2.1、sshagent

stage('remote build') {
    steps {
        sshagent (credentials: ["$SSH_CREDENTIALS_ID"]) {
           sh '''
            scp ${BUILD_FILE} ${SSH_HOST}:${REMOTE_DIR}
            ssh -l root ${SSH_HOST} "${REMOTE_EXEC}"
           '''
        }
    }
}

2.2、k8s操作
2.2.1、配置kubeconfig
在这里插入图片描述
2.2.2、配置pipeline内容

stage("kubectl deploy"){
    steps{
        withCredentials([file(credentialsId: KUBECONFIG_CREDENTIALS_ID, variable: 'KUBECONFIG')]) {
            sh "kubectl --kubeconfig=${KUBECONFIG} get deploy/nwy-${SERVICE} -o custom-columns=NAME:.spec.template.spec.containers[0].image"
            sh "kubectl --kubeconfig=${KUBECONFIG} set image deploy/nwy-${SERVICE} nwy-${SERVICE}=${DOCKER_IMAGE}"
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值