jenkins回滚发布下拉案例1(二)
Description,描述字段
请选择版本
依赖:Referenced parameters UMI_CLUSTER,UMI_SERVICES
依赖环境,服务
其他使用默认值
3.流水线脚本执行内容
pipeline { agent { node { label 'master01' } } options { disableConcurrentBuilds() } environment { USERNAME = 'root' DEV_IP = '192.168.10.17' } stages { stage('Rollback Service') { steps { script { if (env.UMI_CLUSTER == 'dev') { env.MASTER_IP = "${env.DEV_IP}" } else if (env.UMI_CLUSTER == 'review') { env.MASTER_IP = "${env.REVIEW_IP}" } else if (env.UMI_CLUSTER == 'sit') { env.MASTER_IP = "${env.SIT_IP}" } else if (env.UMI_CLUSTER == 'uat') { env.MASTER_IP = "${env.UAT_IP}" } else if (env.UMI_CLUSTER == 'prod') { env.MASTER_IP = "${env.PROD_IP}" } else { sh 'exit 1' } } sh ''' set -e echo ${UMI_CLUSTER} echo ${UMI_SERVICES} echo ${UMI_VERSION} ssh ${USERNAME}@${MASTER_IP} "helm rollback ${UMI_SERVICES} `helm history ${UMI_SERVICES} |grep ${UMI_VERSION}|awk '{print \\$1}'`" ''' } } }}jenkins 机器配置了免密登录到 对应集群环境中
4.构建服务测试验证
回滚正常
#调试groovy脚本
https://jenkins.umi.com/manage/script
import java.util.concurrent.TimeUnitdef userName = "root"def devIpAddress = "192.168.10.17"def sitIpAddress = "192.168.10.16"def UMI_CLUSTER='dev'def cluster=UMI_CLUSTERdef ipAddressif (cluster== 'dev') { ipAddress = devIpAddress} else if (cluster== 'sit') { ipAddress = sitIpAddress} else { throw new RuntimeException("Invalid UMI_CLUSTER value: ${cluster}")}def sshCommand = """ ssh ${userName}@${ipAddress} ' helm list --output=json | jq -r ".[].name" '"""def processBuilder = new ProcessBuilder('bash', '-c', sshCommand)processBuilder.redirectErrorStream(true)def process = processBuilder.start()process.waitFor(5, TimeUnit.SECONDS)def result = ''if (process.exitValue() == 0) { result = process.text.trim().tokenize('\n')}return result页面显示功能
##环境准备
1.k8s环境准备
2.jenkins免密到集群
3.helm nginx 模版
查看仓库
helm repo list
添加bitnami中的nginx的仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
查找Nginx
helm search repo nginx
安装nginx
helm install my-nginx --set service.type=NodePort --set service.ports.http=8181 bitnami/nginx
查看服务
下载nginx并修改服务版本
helm pull bitnami/nginx
修改chart.yaml中版本为 1.27.0
nginx/Chart.yaml
更新部署
helm upgrade my-nginx ./nginx --version 1.27.0
查看更新情况