jenkins回滚发布下拉案例1(二)

韵味老鸟 2024-07-18 01:31:37

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

查看更新情况

0 阅读:0