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}"
}
}
}