当前位置: 首页 > news >正文

网站管理助手4.0建设网站站点过程中

网站管理助手4.0,建设网站站点过程中,西安做网站,建设企业网站优势目录 一、实验 1.环境 2.GitLab 更新deployment文件 3.GitLab更新共享库前端项目CI与CD流水线 4.K8S查看前端项目版本 5.Jenkins 构建前端项目 6.Jenkins 再次构建前端项目 二、问题 1. Jenkins 构建CI 流水线报错 2. Jenkins 构建CI 流水线弹出脚本报错 3. Jenkins…目录 一、实验 1.环境 2.GitLab 更新deployment文件 3.GitLab更新共享库前端项目CI与CD流水线 4.K8S查看前端项目版本 5.Jenkins 构建前端项目 6.Jenkins 再次构建前端项目 二、问题 1. Jenkins 构建CI 流水线报错 2. Jenkins 构建CI 流水线弹出脚本报错 3. Jenkins 构建CD 流水线报错 4.URL中特殊字符实现哪些功能 5.sed如何实现替换特殊字符 一、实验 1.环境 1主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins slave 从节点 node1K8S node节点1.20.6192.168.204.181 node2K8S node节点1.20.6192.168.204.182 jenkins  jenkins主节点       2.414.2192.168.204.15:8080  gitlab runner 从节点  harbor私有仓库1.2.2192.168.204.15 gitlab gitlab 主节点        12.10.14192.168.204.8:82 jenkins slave 从节点  sonarqube9.6192.168.204.8:9000  2.GitLab 更新deployment文件 1项目新建目录用于存放上传的deployment 替换文件 2准备更新模板文件deployment.yaml __APPNAME__应用名称对应Jenkins作业名称__NAMESPACE__ (名称空间) 对应业务名称__INAGENAME__(镜像名称) 3更新完成 4项目目录如下 3.GitLab更新共享库前端项目CI与CD流水线 1查看项目架构 2更新K8S CI流水线 k8sci.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{// 获取模板文件fileData gitlabutil.GetRepoFile(22,deployment.yaml, master)sh rm -fr deployment.yamlwriteFile file: deployment.yaml, text: fileData// 替换模板文件内容namespace ${JOB_NAME}.split(/)[0]appName ${JOB_NAME}.split(/)[-1].split(_)[0]sh sed -i s#__PORT__#${env.port}#g deployment.yamlsed -i s#__APPNAME__#${appName}#g deployment.yamlsed -i s#__NAMESPACE__#${namespace}#g deployment.yamlsed -i s#__IMAGENAME__#${env.imageName}#g deployment.yaml// 上传替换后的版本文件新建文件或者更新文件newYaml sh returnStdout: true, script: cat deployment.yamlprintln(newYaml)//更新gitlab文件内容base64Content newYaml.bytes.encodeBase64().toString()// 会有并行问题同时更新报错try {gitlabutil.UpdateRepoFile(22,${appName}%2f${env.branchName}.yaml,base64Content, master)} catch(e){gitlabutil.CreateRepoFile(22,${appName}%2f${env.branchName}.yaml,base64Content, master)}}}}}}3更新K8S CD流水线 k8scd.jenkinsfile Library(mylibmaster) _ import org.devops.*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(GetDeployFile){steps{script {env.appName ${env.projectName}env.deployFile ${env.appName}/${env.branchName}.yaml//println(GetCode)fileData gitlabbutil.GetRepoFile(22,${env.appName}%2f${env.branchName}.yaml, master)//println(fileData)sh rm -fr ${env.deployFile}writeFile file: ${env.deployFile}, text: fileData//sh ls -l; cat deployment.yamlsh ls -l }}}stage(DeployAPP){steps{script{env.namespace ${env.groupName}sh ## 发布应用kubectl apply -f ${env.deployFile} -n ${env.namespace}// 获取应用状态5.times{sh sleep 2; kubectl -n ${env.namespace} get pod | grep ${env.appName} }}}}stage(RollOut){input {message 是否进行回滚ok 提交submitter david,aaparameters {choice(choices: [yes,no], name: opts)}}steps{script{switch (${opts}){case yes:sh kubectl rollout undo deployment/${env.appName} -n ${env.namespace}breakcase no:break}}}}} } 4.K8S查看前端项目版本 1外部测试访问当前版本为1.1.7 # curl http://devops03-devops-ui.devops.com:31291 (2)  另开一个终端用watch命令观察pod变化 # watch -n 1 kubectl get pod -n devops03 5.Jenkins 构建前端项目 1Jenkins给前端项目CI流水线添加参数添加字符参数port 2Jenkins给前端项目CD流水线添加参数添加字符参数branchName (3) 构建前端项目CI流水线 4成功 5GitLab查看deployment部署文件已自动上传RELEASE-1.1.5.yaml (6) 构建前端项目CD流水线 (7) 观察pod变化 8外部测试访问当前版本为1.1.5 # curl http://devops03-devops-ui.devops.com:31291 9不进行回滚 10完成 6.Jenkins 再次构建前端项目 1 构建前端项目CI流水线 2成功 3GitLab查看deployment部署文件已自动上传RELEASE-1.1.6.yaml (4) 构建前端项目CD流水线 (5) 观察pod变化 6外部测试访问当前版本为1.1.6 # curl http://devops03-devops-ui.devops.com:31291 7不进行回滚 8完成 二、问题 1. Jenkins 构建CI 流水线报错 1报错 2原因分析 函数名错误 3解决方法 修改函数名。 修改前 修改后 2. Jenkins 构建CI 流水线弹出脚本报错 1报错 2原因分析 script不允许使用静态方法 3解决方法 运行script使用静态方法 根据弹出提示页面点击进入。 点击Approve 完成 重写构建项目成功 3. Jenkins 构建CD 流水线报错 (1) 报错 2原因分析 yaml文件格式错误 3解决方法 修改deploymeny模板文件 修改前 修改后 成功 4.URL中特殊字符实现哪些功能 1URL特殊字符 ​ 有些符号在URL中是不能直接传递的如果要在URL中传递这些特殊符号那么就要使用他们的编码了。 编码的格式为%加字符的ASCII码即一个百分号%后面跟对应字符的ASCII16进制码值。例如 空格的编码值是%20。 如果不使用转义字符这些编码就会当URL中定义的特殊字符处理。​ 2URL特殊符号及编码 十六进制值 1) URL 中号表示空格 %2B 2) 空格 URL中的空格可以用号或者编码 %20 3) / 分隔目录和子目录 %2F 4) ? 分隔实际的 URL 和参数 %3F 5) % 指定特殊字符 %25 6) # 表示书签 %23 7) URL 中指定的参数间的分隔符 %26 8) URL 中指定参数的值 %3D 5.sed如何实现替换特殊字符 1普通操作可以使用冒号(:)井号(#)正斜杠(/)来作为分隔符 sed -i s#abc#def#g geng.file ---将文件geng中的abc替换成defcat geng.file | sed s/abc/def/g ---打印文件geng并将其中的abc替换成def 2对于变量做替换 sed 若是单引号括起来的变量上得再额外加个单引号才能引用生效 若是双引号括起来的可直接引用生效。 1举例 pa127.0.0.1/32; fieldip_allow123; \ echo $field | sed s#^ip_allow.*#ip_allow${pa}#g 结果ip_allow${pa} --变量替换未生效2更改 echo $field | sed s#^ip_allow.*#ip_allow${pa}#g结果ip_allow127.0.0.1/323更改 echo $field | sed s#^ip_allow.*#ip_allow${pa}#g结果ip_allow127.0.0.1/323 特殊字符替换反斜杠、正斜杠、双引号、$符 单个转义多加个反斜杠做转义即可反斜杠\\、正斜杠(\/)、双引号(\) 单转多个参考如下列表 表2 特殊字符转换 实现目标方法能否用单引号还是双引号括起来单引号双引号为什么反斜杠(\)替换成两个反斜杠(\\) sed -i s#\\#\\\\#g file 或sed -i s:\\:\\\\:g file √×反斜杠用双引号括起来会报错反斜杠(\)替换成正斜杠(/)sed -i s#\\#\/#g file√×反斜杠用双引号括起来会报错双引号()替换成两个双引号() sed -i s#\#\\#g file sed -i s#\#\\#g file √√ 单引号()替换成两个单引号()sed -i s###g file×√不能用单引号括起来分不清了($)替换成\$sed -i s:\$:\\\$:g file√×不能用双引号否则会认为是$(正则匹配结尾位置)行的结果追加字符呢 4curl时用的变量sed转化 curl -H Content-Type: application/json -X POST -d 参数参数中涉及到特殊字符都得转义而且要多转一层即$得转成\\$才能原封不动的供后续使用 #值替换单引号、反斜杠、双引号 curl的时候用多一层转义所以\要用\\sed -i s###g ${file} ---单引号要转成两个单引号sed -i s#\\#\\\\\\\\#g ${file} ---反斜杠sed -i s:\:\\\\\:g ${file} ---双引号sed -i s:\$:\\\\\$:g ${file} ---$符curl引用参数的这种形式有两种写法 1直接引用单个参数变量 curl -H Content-Type: application/json -X POST -d {type:0,name: ${pa_name} } 这种需要对变量额外加上一个单引号才能引用生效。2整个参数变量作为一个整体(推荐) param{\type\:\0\, \name\:\${pa_name}\} curl -H Content-Type: application/json -X POST -d ${param}
http://www.huolong8.cn/news/203021/

相关文章:

  • 个人做 网站2019南宁平面设计公司
  • 如何查找网站根目录wordpress设置固定链接后
  • 网站站点建设分为模板做图 网站有哪些内容
  • 自己录入数据做问卷的网站网站版块设计
  • 深圳做微信网站公司义务网站建设
  • 微信网站推广手机怎么做网站免费的
  • 贵州公明建设投资咨询有限公司官方网站晋江论坛网站
  • 推上网站网站知识架构
  • 网站建设基本流程教学视频百度分公司 网站外包
  • 电子商务网站 注意东家乐装修公司简介
  • 企业网站建设三个原则石家庄网络推广公司有哪些
  • 建一个购物网站大约多少钱wordpress .
  • 怎样 建设电子商务网站怎么美化网站
  • 太原门户网站品牌设计与vi设计的区别
  • 自适应网站什么意思基于c 的网站开发
  • 大学校园网站建设oa软件公司排名
  • 做鲜花的网站有哪些无锡市城市建设规划局网站
  • 如何免费建设公司网站建设银行鞍山网站
  • 免费app网站下载大全精通wordpress
  • 如何做网站网页免费网站后台登陆验证码不显示
  • 食品企业网站建设电子元器件商城网站建设
  • 建设银行衡阳市分行网站建e网app下载链接
  • 网站内容智能wordpress文章列表页教程
  • 长春网站上排名项目四网站建设实训报告
  • 河南省建设厅官方网站李学军深圳万创网怎么样
  • 微网站收费标准什么网站可以做认证
  • 应用软件免费下载怎么做网站的seo排名知乎
  • 谷歌网站推广优化可以怎么找回密码
  • 企业网站搭建步骤wordpress 页面下载文件
  • 郑州红酒网站建设网站开发人员知乎