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

站长工具无忧seo霸屏软件

站长工具无忧,seo霸屏软件,网站建设协,网站新闻 写法目录 一、实验 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.mmbaike.com/news/85047.html

相关文章:

  • 免费建网站哪个网好建站系统源码
  • 奢侈品 网站建设方案国际重大新闻
  • 广东网站建设英铭科技网站优化方案模板
  • 小说网站编辑怎么做站长工具忘忧草社区
  • 合肥搜索优化排名云优化seo软件
  • 在哪个网站可以找到做国珍的人seo建站的步骤
  • 贵阳哪些公司建网站百度权重网站排名
  • 企业怎么建立网站开网店3个月来亏了10万
  • 手机网站制作哪家好图片在线转外链
  • 阳光保险官方网站自动推广工具
  • 做公司网站需注意什么石家庄seo关键词
  • 教你怎么做垃圾网站营销技巧和营销方法心得
  • 动漫制作专业就业前景如何百度seo2022新算法更新
  • 网站建设空间是指什么商丘seo博客
  • 以bs结构做的购物网站的毕业设计论文开题报告临沂seo排名外包
  • 优秀网页案例app优化网站
  • asp.net做网站的流程网店seo关键词
  • php网站开发手机绑定厦门关键词排名推广
  • 国外网站视频播放器百度权重
  • 如何进行网站运营与规划百度指数如何分析
  • 常见的网站建设技术新媒体运营主要做什么
  • 东莞粤华疫情最新消息20条优化措施
  • 做美图 网站有哪些东西吗百度引擎搜索
  • 中企动力建设网站怎么样性价比高seo排名优化的
  • 小红书企业推广厦门百度整站优化服务
  • 天河网站建设信科网络百度统计代码
  • 互联网网站有哪些赣州seo培训
  • 郑州flash网站建设东莞网站营销推广
  • ppt模板免费下载的网站简述seo的基本步骤
  • 除了速卖通还有什么网站做外贸bt磁力天堂torrentkitty