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

怎样监测熊掌号绑定成功网站企业网站建设杭州公司

怎样监测熊掌号绑定成功网站,企业网站建设杭州公司,wordpress改页脚,电商平台是什么目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira 远程触发 Jenkins 实现合并 GitLab 分支 4.K8S master节点操作 5.Jira 发布流水线 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins…

目录

一、实验

1.环境

2.GitLab 查看项目

3.Jira 远程触发 Jenkins 实现合并 GitLab 分支

4.K8S master节点操作

5.Jira 发布流水线


一、实验

1.环境

(1)主机

表1 主机

主机架构版本IP备注
master1K8S master节点1.20.6192.168.204.180

jenkins slave

(从节点)

jira9.12.1192.168.204.180:8801
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
gitlabgitlab 主节点     12.10.14192.168.204.8:82

jenkins slave

(从节点)

sonarqube9.6192.168.204.8:9000

(2)查看K8S集群状态

# kubectl get node

2.GitLab 查看项目

(1)GitLab查看前端项目(项目编号为20)

3.Jira 远程触发 Jenkins 实现合并 GitLab 分支

(1)点击系统

(2)管理员入口 (需要输入密码)

(3)修改网络钩子(选择Issue操作事件、Release操作事件来触发)

问题里添加“已更新”

(4)完成修改

(5)修复项目版本

指定1.1.6版本

(6)Jenkins触发流水线,JSON格式转换

(7)拿到关键数据

1)用于创建gitlab 项目名称   
issue.fields.components 2) 用于gitlab 分支名称   
issue.key3)用于gitlab 项目组名称  
issue.fields.project.name4)用于gitlab 特性分支
issue.fields.fixVersions

(8)Jira官网查询issues API接口  (一个Jira项目中的issues对应一个GitLab的特性分支)

Jira REST API examples (atlassian.com)

curl \-D- \-u charlie:charlie \-X GET \-H "Content-Type: application/json" \http://localhost:8080/rest/api/2/search?jql=assignee=charlie

(9)Postman( GET 方式)测试取到Jira 的修复版本信息(fixVersion)

http://192.168.204.180:8801/rest/api/2/search?jql=project= DEVOPS3 AND fixVersion = 1.1.6

(10)GitLab官网查询合并请求 API

Merge requests API | GitLab

POST /projects/:id/merge_requests

(11) Postman (POST 方式)测试创建合并请求

http://192.168.204.8:82/api/v4/projects/20/merge_requests

(12)GitLab查看新增的合并请求

(13)合并请求详细信息

(14)这里先关闭合并请求

(15)Jenkins修改Jira流水线代码

webhookData = readJSON text:  "${webhookData}"//jira 事件
jiraEvent = webhookData.webhookEvent
jiraProjectName = webhookData.issue.fields.project.name// 获取gitlab参数
gitlabProjects = []
gitlabBranchName = webhookData.issue.key
gitlabGroupName =  jiraProjectNamefor (i in webhookData.issue.fields.components){gitlabProjects.add(i["name"])
}//描述信息
currentBuild.description = "Trigger by ${jiraEvent} \n project: ${gitlabProjects} \n branch: ${gitlabBranchName}"pipeline {agent { label "build" }stages {stage("Process") {steps {script {println(gitlabProjects)println(gitlabBranchName)projectIds = GetProjectsId(gitlabGroupName,gitlabProjects)switch(jiraEvent) {case "jira:issue_created":println(projectIds)for (id in projectIds){CreateBranch(id,gitlabBranchName,"master")}breakcase "jira:issue_updated":if (webhookData.issue.fields.fixVersions.size() >= 1){jiraFixVersion = webhookData.issue.fields.fixVersions[0]["name"]//获取fixversion关联的所有issuesissues = GetIssuesByFixVersion(jiraProjectName, jiraFixVersion)// 在issue关联的所有项目创建版本分支for (id in projectIds){CreateBranch(id, "RELEASE-${jiraFixVersion}", "master")    //RELEASE-1.1.6// 创建合并请求  特性分支 > 版本分支for(issue in issues) {CreateMergeRequest(id, issue, "RELEASE-${jiraFixVersion}" )}}break}default:println(error)break}}}}}
}// 创建合并请求def CreateMergeRequest(projectId,sourceBranch,targetBranch) {try {apiUrl = "projects/${projectId}/merge_requests"reqBody = """{"source_branch": "${sourceBranch}","target_branch":"${targetBranch}","title": "${sourceBranch}>>>${targetBranch}byJenkins"}"""response = HttpReq('POST', apiUrl, reqBody)}catch (Exception e) {println(e)}
}// 查询JiraReleaseissuedef GetIssuesByFixVersion(projectName, fixVersion){jql = "project%20=%20${projectName}%20AND%20fixVersion%20=%20${fixVersion}"response = sh returnStdout: true,script: """curl \-u admin:admin \-H "Content-Type: application/json" \--request GET "http://192.168.204.180:8801/rest/api/2/search?jql=${jql}" -s"""response = readJSON text: """ ${response - "\n"} """issues = []for (i in response["issues"]){issues.add(i["key"])}return issues
}// 创建分支
def CreateBranch(projectId,newBranchName,sourceBranchName){try {apiUrl = "projects/${projectId}/repository/branches?branch=${newBranchName}&ref=${sourceBranchName}"response =  HttpReq('POST', apiUrl, "")}catch(Exception e){println(e)}
}// 获取所有项目id
def GetProjectsId(gitlabGroupName,gitlabProjects){gitlabProjectIds = []for (project in gitlabProjects){id = GetProjectId(gitlabGroupName,project)if (id != 0){gitlabProjectIds.add(id)}}return gitlabProjectIds
}// 根据项目名称获取项目iddef GetProjectId(groupName,projectName){apiUrl = "projects?search=${projectName}"response =  HttpReq('GET', apiUrl, "")response =  readJSON text: response.content - "\n"if (response.size() > 1){for (i in response){if (i["path_with_namespace"] == "${groupName}/${projectName}"){return i["id"]}}}else {return  response[0]["id"]}}// 封装HTTP
def HttpReq(reqType, reqUrl,reqBody ){def gitServer = "http://192.168.204.8:82/api/v4"withCredentials([string(credentialsId: '02dce3ff-4e46-4de2-b079-5dd6093d4f64', variable: 'GITLABTOKEN')]) {response = httpRequest acceptType: 'APPLICATION_JSON_UTF8',consoleLogResponseBody: true,contentType: 'APPLICATION_JSON_UTF8',customHeaders: [[maskValue: false, name: 'PRIVATE-TOKEN', value: "${GITLABTOKEN}"]],httpMode: "${reqType}",url: "${gitServer}/${reqUrl}",wrapAsMultipart: false,requestBody: "${reqBody}"}return response
}

保存

4.K8S master节点操作

(1)K8S master节点另开一个终端用watch命令观察pod变化

# watch -n 1 "kubectl get pod -n devops03"

(2)外部测试访问

# curl http://devops03-devops-ui.devops.com:31291

(3)删除命名空间devops03

# kubectl delete ns devops03

(4)观察pod变化

5.Jira 发布流水线

(1)Jira新建问题

(2)Jira创建事件触发Jenkins流水线

(3) GitLab更新特性分支DEVOPS-11


(4)修改GitLab修改特性分支Dockerfile,并提交特性分支DEVOPS3-11


(5)Jira 新建版本

(6)查看版本

(7)修改版本为1.1.11

(8)Jenkins更新事件触发Jenkins流水线

(9)GitLab提示特性分支合并到版本分支的请求

(10)合并请求

(11)完成合并

(12)查看合并

(13)Jenkins构建基于HELM的K8S CI流水线

(14)成功

(15)查看Blue Ocean

(16) 查看阶段视图

(17)Harbor查看镜像

192.168.204.15/devops03/devops03-devops-ui:RELEASE-1.1.11

(18)K8S node节点连接Harbor拉取镜像

# docker login -u admin -p Harbor12345 192.168.204.15# docker pull 192.168.204.15/devops03/devops03-devops-ui:RELEASE-1.1.11# docker logout 192.168.204.15

node1节点

node2节点

(19)K8S master节点创建命名空间devops03,目前无资源

#  kubectl create ns devops03#  kubectl get all -n devops03

(20)GitLab 查看HELM模板文件values.yaml 已更新镜像标签为RELEASE-1.1.11

(21)Jenkins构建基于HELM的K8S CD流水线

(22)观察pod变化

(23)外部测试访问(当前版本为1.1.11)

# curl http://devops03-devops-ui.devops.com:31291

(24)最后版本分支 RELEASE-1.1.11 合并到master分支

http://www.yayakq.cn/news/112775/

相关文章:

  • 网站建设先进个人典型材料数字营销平台有哪些
  • 松滋网站定制建站系统的应用场景
  • 佛山市做网站的公司上海平台网站制作公司
  • 物流网站怎么开甘肃省建设厅质量投诉网站
  • 企业网站建设457网页模板的制作步骤
  • 怎么用ftp备份网站php网站开发有什么优点
  • 新建南昌网站建设公司怎么在网站上放广告
  • 鞍山网站建设设计素材网站照片
  • 在那里建立公司网站wordpress vs
  • iis默认网站 没有属性如何实现一个响应式网页
  • 公司网站制作费算是无形资产吗wordpress固定
  • 简述网站设计的开发流程软件制作公司
  • 如何创建属于自己的网站怎么设计海报图片
  • h5响应式网站建设程序开发需要学什么
  • 用视频做网站背景提供网站制作公司哪家专业
  • 青海省安建设管理部门网站单品网站模板
  • 如何做网站主赚钱网站建设排名公司
  • 如何网站全部结构化妆培训学校网站建设
  • 南宁软件优化网站上海做网站联系电话
  • e建网站长春网站优化哪家好
  • 旅游网站的市场需求怎么做介绍湘潭网站建设 磐石网络在哪
  • 多伦多网站建设多少钱云南 网站建设网站
  • 做义工的同城网站wordpress 后台无法打开
  • 如何做公司企业网站建设公司网站法律声明
  • 网站怎么添加导航栏wordpress 电影主题
  • 网站优化的作业及意义wordpress后台打开超慢
  • 网站建设管理要求长沙招聘网58同城
  • 专业做图片制作网站有哪些广西桂林最新事件
  • 网站制作公司北京网站建设公司哪家好营销网站建设苏州
  • 绵阳的网站制作公司哪家好简单的网站多少钱