手机排行网站有哪些,织梦dede网站后台被挂黑链怎么办,dedecms网站地图调用,wordpress布局怎么看目录
一、实验
1.环境
2. GitLab 共享库新建HELM CI流水线
3.Jenkins新建HELM CI流水线
5.Jenkins构建前端项目
6.GitLab 共享库新建HELM CD流水线
7.Jenkins新建HELM CD流水线
8.HELM完成前端项目应用发布与回滚
9.Jenkins再次构建前端项目
10.HELM再次完成前端项目…目录
一、实验
1.环境
2. GitLab 共享库新建HELM CI流水线
3.Jenkins新建HELM CI流水线
5.Jenkins构建前端项目
6.GitLab 共享库新建HELM CD流水线
7.Jenkins新建HELM CD流水线
8.HELM完成前端项目应用发布与回滚
9.Jenkins再次构建前端项目
10.HELM再次完成前端项目应用发布与回滚
二、问题
1. HELM CD流水线报错 一、实验
1.环境
1主机
表1 主机
主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins slave 从节点 helm3.6.0git1.8.3.1node1K8S node节点1.20.6192.168.204.181node2K8S node节点1.20.6192.168.204.182jenkins jenkins主节点 2.414.2192.168.204.15:8080 gitlab runner 从节点 harbor私有仓库1.2.2192.168.204.15gitlabgitlab 主节点 12.10.14192.168.204.8:82 jenkins slave 从节点 sonarqube9.6192.168.204.8:9000 2. GitLab 共享库新建HELM CI流水线
1共享库新建CI流水线 2修改k8scihelm.jenkinsfile
Library(mylibmaster) _
import org.devops.*def checkout new Checkout()
def build new Build()
def unittest new UnitTest()
def sonar new Sonar()
def gitlabutil new Gitlab()pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(Checkout){steps{script {println(GetCode)checkout.GetCode(${env.srcUrl},${env.branchName})}}}stage(build){steps{script{println(Build)build.CodeBuild(${env.buildTool})}}}stage(UnitTest){steps{script{println(Test)unittest.CodeTest(${env.buildTool})}}}stage(SonarScan){steps {script {groupName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1].split(_)[0]sonar.CodeSonar(${env.buildTool},projectName,groupName)}}}stage(PushImage){steps {script {repoName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1].split(_)[0]env.registry 192.168.204.15env.imageName ${env.registry}/${repoName}/${projectName}:${env.branchName}withCredentials([usernamePassword(credentialsId: 8c662308-4991-4576-9826-74a5417de685, passwordVariable: DOCKER_PASSWD, usernameVariable: DOCKER_USER)]) {sh #重写HTML首页echo ${env.imageName} dist/index.html #构建镜像docker build -t ${env.imageName} .#登录镜像仓库docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWD} ${env.registry}#上传镜像docker push ${env.imageName}#删除镜像sleep 2docker rmi ${env.imageName}}}}}stage(ReleaseFile){steps{script{env.namespace ${JOB_NAME}.split(/)[0]env.appName ${JOB_NAME}.split(/)[-1].split(_)[0]// 获取values.yaml文件fileData gitlabutil.GetRepoFile(23,${env.appName}%2fvalues.yaml, master)yamlData readYaml text: fileData// 替换模板文件内容yamlData.image.tag ${env.imageName}.split(:)[-1]yamlData.image.repository ${env.registry}/${env.namespace}/${env.appName}//保存yaml文件sh rm -fr values.yamlwriteYaml charset: UTF-8, file: values.yaml, data: yamlData// 上传替换后的版本文件新建文件或者更新文件newYaml sh returnStdout: true, script: cat values.yamlprintln(newYaml)//更新gitlab文件内容base64Content newYaml.bytes.encodeBase64().toString()// 会有并行问题同时更新报错try {gitlabutil.UpdateRepoFile(23,${env.appName}%2fvalues.yaml,base64Content, master)} catch(e){gitlabutil.CreateRepoFile(23,${env.appName}%2fvalues.yaml,base64Content, master)}}}}}} 3.Jenkins新建HELM CI流水线
1新建CI流水线 2修改脚本路径 3新建视图 4列表添加
5查看视图 5.Jenkins构建前端项目
1Jenkins构建前端项目 CI流水线指定版本为RELEASE-1.1.6 2完成 3GitLab HELM项目显示更新了文件values.yaml 更新前 更新后 6.GitLab 共享库新建HELM CD流水线
1共享库新建CD流水线 2修改k8scdhelm.jenkinsfile
Library(mylibmaster) _
import org.devops.*def checkout new Checkout()
def gitlabbutil new Gitlab()
env.groupName ${JOB_NAME}.split(/)[0]
env.projectName ${JOB_NAME}.split(/)[-1].split(_)[0]pipeline {agent { label k8s}options {skipDefaultCheckout true}stages{stage(GetChartRepo){steps{script {println(GetCode)checkout.GetCode(${env.srcUrl},${env.branchName})}}}stage(DeployAPP){steps{script{env.namespace ${env.groupName}env.appName ${env.projectName}// HELM 发布sh helm package ${env.appName}/helm upgrade --install --create-namespace ${env.appName} ./${env.appName}-*.tgz -n ${env.namespace}helm history ${env.appName} -n ${env.namespace}//获取release的历史版本env.revision sh returnStdout: true, script: helm history ${env.appName} -n ${env.namespace} | grep -v REVISION | awk {print \$1} println(${env.revision})println(${env.revision.split(\n).toString()})env.REVISION ${env.revision.split(\n).toString()}println(${env.REVISION})// 获取应用状态5.times{sh sleep 2; kubectl -n ${env.namespace} get pod | grep ${env.appName}}}}}stage(RollOut){steps{script{//获取release的历史版本env.revision sh returnStdout: true, script: helm history ${env.appName} -n ${env.namespace} | grep -v REVISION | awk {print \$1} //println(${env.revision})//println(${env.revision.split(\n).toString()})env.REVISION ${env.revision.split(\n).toString()}println(${env.REVISION})def result input message: RollBack?,ok: submit,parameters: [choice(choices: ${env.REVISION}, description: , name: revision)]env.result result - \necho Actions is ${env.result}, doing.......if ( ${env.result} ! ){sh helm rollback ${env.appName} ${env.result} -n ${env.namespace} } else {println(Skip rollback .....)}}}}}
}3查看共享库目录 7.Jenkins新建HELM CD流水线 1新建CD流水线 2修改脚本路径 3复制Clone项目地址 4添加字符参数 5新建并查看视图 8.HELM完成前端项目应用发布与回滚
1K8S master节点另开一个终端用watch命令观察pod变化
# watch -n 1 kubectl get pod -n devops03 2外部测试访问当前版本为1.1.6
# curl http://devops03-devops-ui.devops.com:31291 3Jenkins构建前端项目CD 流水线指定分支为master 4选择回滚 1 版本 相当于选择1 版本
# helm rollback devops03-devops-ui 1 -n devops035完成 6观察pod变化 9.Jenkins再次构建前端项目
1Jenkins构建前端项目 CI流水线指定版本为RELEASE-1.1.7 2完成 3GitLab HELM项目显示更新了文件values.yaml 更新前 更新后 10.HELM再次完成前端项目应用发布与回滚
1Jenkins构建前端项目CD 流水线指定分支为master 2观察pod变化 3外部测试访问当前版本为1.1.7
# curl http://devops03-devops-ui.devops.com:31291 4选择回滚 6 版本 相当于选择6 版本
# helm rollback devops03-devops-ui 1 -n devops035完成 6观察pod变化 7外部测试访问当前版本为1.1.6
# curl http://devops03-devops-ui.devops.com:31291 8查看历史版本
# helm history devops03-devops-ui -n devops03 二、问题
1. HELM CD流水线报错
(1) 报错 2原因分析
GitLab HELM项目只有master分支
3解决方法
分支名输入master.
修改 成功