jenkins流水线自动化部署pipeline脚本编写

pipeline {
//定义运行流水线的执行机
agent{
 label "master"
}

//定义环境变量
environment{
  harbor_url = ' IP地址:端口号'
  wai_harbor_url = '域名:端口号'
  //harbor登录凭据,jenkins插件生成
  harbor_auth = 'XXXXX'
  tag = 'v1.0'
  image_path='/build/backend/test'
  code_path='/root/.jenkins/workspace/php_test'
  projectName = "php"
  imageName = "php_test"
  imageNameTag = "${imageName}:${tag}"
  k8s_path = "/usr/local/k8s/appfile/php-test"
}
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: "*/v3.1"]], extensions: [],userRemoteConfigs: [[credentialsId: 'XXXXXX', url: 'git地址']]])
}
}
stage('build project') {
steps {
sh '''//制作项目后端镜像
cd ${code_path}
chmod +x expect.sh && ./expect.sh 1 //expect脚本可实现非交互式填充进行配置初始化
/usr/local/bin/php /usr/local/bin/composer install --ignore-platform-reqs
docker build -t ${imageNameTag} . '''
withCredentials([usernamePassword(credentialsId: "${harbor_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
sh '''docker login -u ${username} -p ${password} ${harbor_url}
docker tag ${imageNameTag} ${harbor_url}/${projectName}/${imageNameTag} //更改tag标签
docker push ${harbor_url}/${projectName}/${imageNameTag} //推送至harbor仓库'''
}
sh '''docker rmi -f ${imageNameTag}
docker rmi -f ${harbor_url}/${projectName}/${imageNameTag} //删除本地docker镜像'''
}
}
stage('publish project') {

//远程执行自动化部署shell脚本
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s-master', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''/usr/local/k8s/appfile/php-test/deploy.sh test''', execTimeout: 240000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/usr/local/k8s/appfile/php-test', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
      }
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值