建站报价自己用电脑做网站服务器

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

建站报价,自己用电脑做网站服务器,东莞广告公司招聘信息,名字找备案网站目录 一、实验 1.环境 2.GitLab 查看项目 3.Jira 远程触发 Jenkins 实现合并 GitLab 分支 4.K8S master节点操作 5.Jira 发布流水线 一、实验 1.环境 #xff08;1#xff09;主机 表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:8801node1K8S 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查看K8S集群状态

kubectl get node 2.GitLab 查看项目

1GitLab查看前端项目项目编号为20 3.Jira 远程触发 Jenkins 实现合并 GitLab 分支 1点击系统 2管理员入口 需要输入密码 3修改网络钩子选择Issue操作事件、Release操作事件来触发 问题里添加“已更新” 4完成修改 5修复项目版本 指定1.1.6版本 6Jenkins触发流水线JSON格式转换 7拿到关键数据 1用于创建gitlab 项目名称
issue.fields.components 2 用于gitlab 分支名称
issue.key3用于gitlab 项目组名称
issue.fields.project.name4用于gitlab 特性分支 issue.fields.fixVersions 8Jira官网查询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?jqlassigneecharlie 9Postman GET 方式测试取到Jira 的修复版本信息fixVersion http://192.168.204.180:8801/rest/api/2/search?jqlproject 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 12GitLab查看新增的合并请求 13合并请求详细信息 14这里先关闭合并请求 15Jenkins修改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_requestsreqBody {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} -sresponse 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 - \nif (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/v4withCredentials([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节点操作 1K8S 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 发布流水线

1Jira新建问题 2Jira创建事件触发Jenkins流水线 (3) GitLab更新特性分支DEVOPS-11 4修改GitLab修改特性分支Dockerfile并提交特性分支DEVOPS3-11 5Jira 新建版本 6查看版本 7修改版本为1.1.11 8Jenkins更新事件触发Jenkins流水线 9GitLab提示特性分支合并到版本分支的请求 10合并请求 11完成合并 12查看合并 13Jenkins构建基于HELM的K8S CI流水线 14成功 15查看Blue Ocean (16) 查看阶段视图 17Harbor查看镜像 192.168.204.15/devops03/devops03-devops-ui:RELEASE-1.1.11 18K8S 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节点 19K8S master节点创建命名空间devops03目前无资源

kubectl create ns devops03# kubectl get all -n devops0320GitLab 查看HELM模板文件values.yaml 已更新镜像标签为RELEASE-1.1.11 21Jenkins构建基于HELM的K8S CD流水线 22观察pod变化 23外部测试访问当前版本为1.1.11

curl http://devops03-devops-ui.devops.com:31291 24最后版本分支 RELEASE-1.1.11 合并到master分支