DevOps(四)

news2024/11/18 5:36:20

CD(二)

    • 1. CD
      • Step 1 - 上传代码
      • Step 2 - 下载代码
      • Step 3 - 检查代码
      • Step 4 - 编译代码
      • Step 5 - 上传仓库
      • Step 6 - 下载软件
      • Step 7 - 制作镜像
      • Step 8 - 上传镜像
      • Step 9 - 部署服务
    • 2. 整体预览
      • 2.1 预览
        • 1. 修改代码
        • 2. 查看sonarqube检查结果
        • 3. 查看nexus仓库
        • 4. 查看harbor仓库
        • 5. 整体效果
      • 2.2 pipeline完整版
    • 3. 写在最后...

在这里插入图片描述

1. CD

参考前面的流程图,我们正式开始CD的流程

Step 1 - 上传代码

  • 安装git
    参考 Windows安装Git图文教程
  • 配置IDEA
    参考 IDEA配置Git,以GitHub远程仓库为例
  • 提交代码到本地 Commit
  • gitlab账号密码:root/Newm123@
    在这里插入图片描述
  • gitlab创建项目,复制URL
    在这里插入图片描述
  • IDEA push代码
    会提示输入gitlab URL 账号密码在这里插入图片描述
  • 提交完成
    在这里插入图片描述

Step 2 - 下载代码

  • 在jenkins上创建pipeline项目
    在这里插入图片描述
  • 创建节点,并连接节点
    在这里插入图片描述
    在这里插入图片描述
  • 配置jenkins gitlab(不配置也可以,因为我们在pipeline中也需要配置)
    Dashboard > Manage Jenkins >System
    在这里插入图片描述
  • 配置触发器(不配置也可以,在pipeline中也可以配置)
    在这里插入图片描述
  • pipeline片段
pipeline {
   
    agent {
    
        node {
    label 'node-133'}
            }

    stages {
   
        stage('Build') {
   
            steps {
   
                // Get some code from a GitHub repository
                git credentialsId: 'd3cb7c68-63e5-46d6-a505-d73a89902758', url: 'http://192.168.17.132:8929/devs/myjava.git'

                // Run Maven on a Unix agent.
                sh "mvn -Dmaven.test.failure.ignore=true clean package"

                // To run Maven on a Windows agent, use
                // bat "mvn -Dmaven.test.failure.ignore=true clean package"
            }

        }
    }
}

此处把mvn打包也一同配置了,并进行简单测试
在这里插入图片描述

[root@node-133 MyJava-Pipeline]# ll target/
total 4
drwxr-xr-x 2 root root   29 Jul 19 05:25 classes
drwxr-xr-x 3 root root   25 Jul 19 05:25 generated-sources
drwxr-xr-x 2 root root   28 Jul 19 05:25 maven-archiver
drwxr-xr-x 3 root root   35 Jul 19 05:25 maven-status
drwxr-xr-x 4 root root   54 Jul 19 05:25 MyJava-latest
-rw-r--r-- 1 root root 3054 Jul 19 05:25 MyJava-latest.war
[root@node-133 MyJava-Pipeline]# pwd
/opt/jenkins/workspace/MyJava-Pipeline

Step 3 - 检查代码

  • 启动sonarqube,登录并设置密码
    http://192.168.17.133:9090
    admin/password
    在这里插入图片描述
  • 部署sonar-scanner
unzip sonar-scanner-cli-4.7.0.2747-linux.zip
cd sonar-scanner-4.7.0.2747-linux/
vim conf/sonar-scanner.properties
[root@dbc-server-554 sonar-scanner-4.7.0.2747-linux]# cat conf/sonar-scanner.properties
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here

#----- Default SonarQube server
sonar.host.url=http://localhost:9090

#----- Default source code encoding
sonar.sourceEncoding=UTF-8
ln -sv /root/docker/sonar/sonar-scanner-4.7.0.2747-linux /usr/local/sonar-scanner
export PATH=/usr/local/sonar-scanner/bin:$PATH
source .bashrc
[root@dbc-server-554 sonar-scanner-4.7.0.2747-linux]# sonar-scanner -h
INFO:
INFO: usage: sonar-scanner [options]
INFO:
...
  • 生成扫描命令
    在这里插入图片描述
mvn clean verify sonar:sonar \
  -Dsonar.projectKey=MyJava \
  -Dsonar.host.url=http://192.168.17.133:9090 \
  -Dsonar.login=6b1dddd3274606082753ff907ee1b0380c28298a

部署jenkins pipeline

  • pipeline片段
//定义http方法
def HttpReq(reqType,reqUrl,reqBody){
   
    sonarServer = "http://192.168.17.133:9090/api"
    // 可以不加authentication认证,因为默认不需要
    result = httpRequest  consoleLogResponseBody: true, 
                 httpMode: 'GET',
                 responseHandle: 'NONE', 
                 url: "${sonarServer}/${reqUrl}"                   
 //                customHeaders:[[name:'Authorization', value:"Basic ${credentials}"]]
    
    return result
}


//获取Sonar质量阈状态
def GetProjectStatus(projectName){
   
    apiUrl = "project_branches/list?project=${projectName}"
    response = HttpReq("GET",apiUrl,'')
    
    response = readJSON text: """${response.content}"""
    result = response["branches"][0]["status"]["qualityGateStatus"]
    
    println(response)
    
   return result
}


pipeline 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/799991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【打卡】Datawhale暑期实训ML赛事

文章目录 赛题描述任务要求数据集介绍评估指标 赛题分析基于LightGBM模型Baseline详解改进baseline早停法添加特征 赛题描述 赛事地址:科大讯飞锂离子电池生产参数调控及生产温度预测挑战赛 任务要求 初赛任务:初赛提供了电炉17个温区的实际生产数据&…

字典树Trie

Trie树又称字典树,前缀树。是一种可以高效查询前缀字符串的树,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 它的优点是:利用字符串…

欧姆龙 NJ SNMP 协议的使用,用于监控PLC的网络状态

NJ SNMP 协议的使用 实验时间:2023.07.25 实验器材:NJ501-1300 实验目的:NJ SNMP 协议的使用 1. SNMP 协议介绍 ​ SNMP(Simple Network Management Protocol)是一种简单网络管理协议。它属于 TCP/IP 五层协议中的…

Cerbero Suite Advanced Crack

Cerbero Suite Advanced Crack 用于软件分类和文件分析的最先进的工具套件。分析多种文件格式,包括PE、Mach-O、ELF、Java、SWF、DEX、PDF、DOC、XLS、RTF、Zip等。 它提供自动分析、交互式分析、Carbon interactive Disassembler、字节码反汇编程序、带布局的十六进…

一篇文章搞定《EventBus详解》

一篇文章搞定《EventBus详解》 前言EventBus简述EventBus的使用EventBus源码解析初始化并构建实例EventBus.getDefault()EventBus.builder()EventBus初始化的重要成员 注册流程register方法SubscriberMethodFinder类findSubscriberMethods方法findUsingReflection方法&#xff…

掌握Python的X篇_10+11_if分支语句、else语句、elif语句

文章目录 1. if关键字及语法2. 语句块的概念3. else语句4. elif语句 1. if关键字及语法 基本语法如下: if 条件表达式:条件为True时,要执行的语句举例: number int(input("Input an number")) if number > 5 :print("这…

【Spring框架】spring对象注入的三种方法

目录 1.属性注入问题:同类型的Bean存储到容器多个,获取时报错的问题;1.将属性的名字和Bean的名字对应上。2.使用AutoWiredQualifier来筛选bean对象; 属性注入优缺点 2.Setter注入Setter注入优缺点 3.构造方法注入(Spri…

Node.js 安装与版本管理(nvm 的使用)

安装 Node.js Node.js 诞生于 2009 年 5 月,截至今天(2022 年 3 月 26 号)的最新版本为 16.14.2 LTS 和 17.8.0 Current,可以去官网下载合适的版本。 其中,LTS(Long Term Support) 是长期维护…

MySQL基础扎实——主键与候选键

词义解释 主键(Primary Key)和候选键(Candidate Key)是关系型数据库中的术语,用于标识和唯一确定表中的记录。它们之间有以下区别: 唯一性:主键是表中的唯一标识,每个表只能有一个主…

环境保护数据传输系统监测环境指标

嵌入式实时操作系统(RTOS)是一种专门设计用于嵌入式系统的操作系统。它具有实时性能和低延迟的特点,能够满足对时间响应性要求较高的应用。本文介绍了一种具备Modbus Slave和Modbus Master功能的嵌入式实时操作系统设备,以及其扩展…

OpenGL Metal Shader 编程:ShaderToy 内置全局变量

OpenGL & Metal Shader 编程:ShaderToy 内置全局变量 前面发了一些关于 Shader 编程的文章,有读者反馈太碎片化了,希望这里能整理出来一个系列,方便系统的学习一下 Shader 编程。 由于主流的 Shader 编程网站,如…

Dart - 语法糖(持续更新)

文章目录 前言开发环境中间表示语法糖1. 操作符/运算符(?./??/??/../?../.../...?)2. 循环(for-in)3. 函数/方法(>)4. 关键字(await for) 最后 前言 通过将dill文件序列化…

【时间序列预测 2023 ICLR】TimesNet

【时间序列预测 2023 ICLR】TimesNet 论文题目:TIMESNET: TEMPORAL 2D-VARIATION MODELING FOR GENERAL TIME SERIES ANALYSIS 中文题目:TimesNet:用于一般时间序列分析的时态二维变异建模 论文链接:https://arxiv.org/abs/2210.02186 论文代…

大专同事一个人7天完成CRM系统开发,怪不得月薪3w

在当今的快节奏商业环境中,成功的关键是敏捷和高效。这使得开发自己的客户关系管理系统(CRM)成为许多企业的迫切需求。CRM有助于跟踪和优化销售线索,管理客户交互,并提高业务效率。但是,对于许多企业来说&a…

大学毕业后,我就去当了2个月外卖骑手,哭了一整晚

先简单介绍一下自己,我来自长沙,大学学的的物流管理专业,现在就职于一家互联网公司,从事软件测试工作。 我来自长沙县的一个偏远农村,家里兄弟姐妹多,父母无力负担我的学费,很多时候学费都是靠姐…

智慧工厂4G+蓝牙+UWB+RTK人员定位系统解决方案

人员定位在智慧工厂的应用正逐渐受到重视,通过使用现代化的技术和智能终端设备,工厂管理者能够实时定位和跟踪员工的位置,方便进行人员调度管理和监督人员的工作情况;人员遇到紧急情况,可通过定位设备一键报警求救&…

智慧消防:如何基于视频与智能分析技术搭建可视化风险预警平台?

一、背景分析 消防安全是一个重要的话题,涉及到每个人的生活和安全。每年都会发生大量的火灾,给人们带来极大的危害,摧毁了大量的财产,甚至造成了可怕的人员伤亡。而消防安全监督管理部门人员有限,消防安全监管缺乏有…

2.2 模型与材质基础

一、渲染管线与模型基础 1. 渲染管线 可编程阶段(蓝色区域): 1顶点着色器 2几何着色器 3片元着色器 2. 模型的实现原理 UV:在建模软件中,进行UV展开,UV会放在一个横向为U纵向为V,范围&#xff0…

TEE GP(Global Platform)功能认证实验室

TEE之GP(Global Platform)认证汇总 GP认证实验室主要面向功能认证、SE安全认证、TEE安全认证,对于TEE来说,则分为TEE功能认证和TEE安全认证。本文对功能认证相关实验室机构进行总结和介绍。 一、国内3家 二、国外3家 参考: GlobalPlatform …

回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLA…