DevOps(三)

CD(二)

    • 1. 整体流程
    • 2. 环境准备
      • 1. jenkins安装
      • 2. 编译安装git
      • 3. docker安装
      • 4. docker-compose安装
      • 5. sonarqube安装
      • 6. harbor安装
      • 7. gitlab私服
      • 8. maven安装
      • 9. Nexus部署
      • 10. K8s部署
    • 3. 安装java及编写代码
      • 3.1 安装java
      • 3.2 安装IntelliJ IDEA
      • 3.3 安装tomcat
      • 3.4 安装maven
      • 3.5 code
      • 3.6 关于maven插件
      • 3.7 code更新

DevOps八卦大阵
在这里插入图片描述

1. 整体流程

在这里插入图片描述

像较于前面用例,本次搭建CD的架构更为完善,更为详细

  • 由于本次使用java编写代码,新增了maven及nexus仓库
  • 使用K8s部署服务

有些模块可能在现实中用的不多或者并不使用,但是为了整体链路的完整,也一并进行部署。另外,由于本文以梳理流程为目的,所以流程中有大量软件使用docker部署,确实省时省力,但是生产环境中还需要斟酌。

本次用java部署web服务

2. 环境准备

服务器规划

linux服务器操作系统均为CentOS 7.9

[root@node-132 home]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
主机名IP 地址所需组件
node-128192.168.17.128docker,kubectl,kubeadm,containerd,keepalived,haproxy
node-129192.168.17.129docker,kubectl,kubeadm,containerd,keepalived,haproxy
node-130192.168.17.130docker,kublet, kube-proxy,containerd
node-131192.168.17.131docker,kublet, kube-proxy,containerd
node-132192.168.17.132docker,gitlab-ce,jenkins,nexus,java11
node-133192.168.17.133docker,maven,java11
node-134192.168.17.133docker,harbor

windows服务器操作系统为Windows 11

主机名IP 地址所需组件
node-157192.168.2.157java,IntelliJ IDEA

1. jenkins安装

由于笔者jenkins安装的版本较高(Jenkins 2.401.2),所以要求java版本至少是11或以上的,笔者这里重新装java

注意:这里不光是安装jenkins的服务器需要较高版本的java,节点机也需要较高版本,否则无法连接节点

参考 CHAPTER 1 Jenkins部署与基础配置 1.1.2 红帽系安装

注意:

需要安装jenkins插件http RequestNexus Artifact UploaderPipeline Utility Steps,后面有用

2. 编译安装git

参考 gitlab/gerrit 2.1 环境准备

3. docker安装

参考 CHAPTER 1 Docker入门 1.3.1 yum安装

4. docker-compose安装

参考 CHAPTER 12 Compose(一)12.2.2 二进制包

5. sonarqube安装

参考 CHAPTER 5 Jenkins & SonarQube
账号:admin
密码:yurq

6. harbor安装

参考 harbor(docker仓库)仓库部署

6bDg3XQ81Y3NDWJhtIVacMDyqeNzj3oO

7. gitlab私服

参考 CHAPTER 3 Jenkins SVN GItlab 3.2.1 搭建gitlab服务器(使用官方镜像搭建)

8. maven安装

参考 Maven

9. Nexus部署

参考 Nexus - 基于docker搭建Maven私服

10. K8s部署

参考 Kubernetes - kubeadm部署

https://www.cnblogs.com/Luquan/p/12273595.html

3. 安装java及编写代码

本节在Windows服务器执行,由于笔者不是java开发工程师,所以代码是借的。折腾了挺长时间终于把本地的服务搞定了

3.1 安装java

官网下载java安装包 Java Downloads | Oracle

jdk-11.0.19_windows-x64_bin.exe

配置环境变量

变量名:path,变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
变量名:JAVA_HOME,路径:JDK的安装目录,本机为:C:\Program Files\Java\jdk-11
变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3.2 安装IntelliJ IDEA

参考 IntelliJ IDEA安装教程

3.3 安装tomcat

参考 中间件(二)- Tomcat

3.4 安装maven

参考 Maven

3.5 code

配置完成后,代码部分请跳至本文的3.7 code更新,由于maven项目笔者打包完成后,war包无法启动(具体原因不明),所以笔者更换了代码

  • 首先利用maven创建webapp,注意一定选择maven-archetype-webapp
    在这里插入图片描述
  • 将工程命名为MyJava,等工程创建好后,创建源码目录,默认是没有的,一般放在main下面,目录名叫java
    在这里插入图片描述
  • 在java目录中添加MyServlet.java代码
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class MyServlet extends HttpServlet {protected void doPods(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException, IOException {doGet(request,response);}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException,java.io.IOException{//request.getRequestDispatcher("/index.jsp").forward(request,response);response.setContentType("text/html");response.getWriter().println("my first servlet code"

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

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

相关文章

【LLM】大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model

大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model 快速了解预训练预训练模型评估微调有监督微调(SFT)人类反馈的强化学习(RLHF)RLHF结果局限性安全性预训练的安全性安全微调上手就干使用登记代码下载获取模型转换模型搭建Text-Generation-WebUI分发模型…

UE5、CesiumForUnreal加载无高度地形

文章目录 1.实现目标2.实现过程3.参考资料1.实现目标 在UE5中,CesiumForUnreal插件默认的地形都是带高度的,这里加载没有高度的地形,即大地高程为0,GIF动图如下: 2.实现过程 参考官方的教程,下载无高度的DEM,再切片加载到UE中。 (1)下载无高度地形DEM0。 在官方帖子…

uniapp使用uni-swipe-action后右侧多了小于1px的间隙

问题&#xff1a;uniapp使用uni-swipe-action后右侧多了小于1px的间隙。且在真机上没有问题&#xff0c;但是在微信开发者工具中有问题。 代码如下&#xff1a;在滑动滑块或者点击这个区域时&#xff0c;就会出现问题。 <scroll-view :scroll-y"true" :style&quo…

文心一言大数据模型-文心千帆大模型平台

官网&#xff1a; 文心千帆大模型平台 (baidu.com) 文心千帆大模型 (baidu.com) 模型优势 1、模型效果优&#xff1a;所需标注数据少&#xff0c;在各场景上的效果处于业界领先水平 2、生成能力强&#xff1a;拥有丰富的AI内容生成&#xff08;AIGC&#xff09;能力 3、应用…

【笔试强训选择题】Day32.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01; 文章目录 前言 一、Da…

HDFS异构存储详解

异构存储 HDFS异构存储类型什么是异构存储异构存储类型如何让HDFS知道集群中的数据存储目录是那种类型存储介质 块存储选择策略选择策略说明选择策略的命令 案例&#xff1a;冷热温数据异构存储对应步骤 HDFS内存存储策略支持-- LAZY PERSIST介绍执行使用 HDFS异构存储类型 冷…

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

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

十五章:使用类别峰值响应的弱监督实例分割

0.摘要 目前&#xff0c;使用图像级别标签而不是昂贵的像素级掩码进行弱监督实例分割的研究还未得到充分探索。本文通过利用类别峰值响应来实现一个分类网络&#xff0c;用于提取实例掩码&#xff0c;来解决这个具有挑战性的问题。只通过图像标签的监督下&#xff0c;完全卷积的…

SqueezeLM 的想法,压缩输入句子潜变量,生成下一句子

又搞了一段时间。还是感觉LongNet那种空洞注意力做编码器有搞头。 RetNet等AFT方法&#xff0c;直接生成太长的句子感觉有点难度&#xff0c;不过可以一句句生成&#xff0c;每次生成短句&#xff0c;这样感觉比较合适。 启发 受 MemroyTransformer 和 GLM 启发 想了一个类似…

MySQL的JSON操作

官网地址 1. MySQL json介绍 As of MySQL 5.7.8, MySQL supports a native JSON data type defined by RFC 7159 that enables efficient access to data in JSON (JavaScript Object Notation) documents. Automatic validation of JSON documents stored in JSON columns. …

MobaXterm通过SSH访问Ubuntu服务器遇到的一个问题

在Windows下的MobaXterm界面配置完ubuntuIP以后显示access denied&#xff0c;排查发现是因为在ubuntu那边忘记安装了SSH Serve&#xff0c;安装过程如下&#xff1a; 第一步&#xff1a;安装所需包 让我们从打开终端输入一些必要命令开始。 注意&#xff0c;在安装新的包或…

牛客 排座椅(贪心)

上课的时候总有一些同学和前后左右的人交头接耳&#xff0c;这是令小学班主任十分头疼的一件事情。不过&#xff0c;班主任小雪发现了一些有趣的现象&#xff0c;当同学们的座次确定下来之后&#xff0c;只有有限的D对同学上课时会交头接耳。 同学们在教室中坐成了 M 行 N 列&…

C语言枚举与联合体详解

本篇文章带来枚举与联合体相关知识详细讲解&#xff01; 如果您觉得文章不错&#xff0c;期待你的一键三连哦&#xff0c;你的鼓励是我创作的动力之源&#xff0c;让我们一起加油&#xff0c;一起奔跑&#xff0c;让我们顶峰相见&#xff01;&#xff01;&#xff01; 目录 一…

TCP/IP协议详解(二)

目录内容 TCP协议的可靠性 TCP的三次握手 TCP的四次挥手 C#中&#xff0c;TCP/IP建立 三次握手和四次挥手常见面试题 在上一篇文章中讲解了TCP/IP的由来以及报文格式&#xff0c;详情请见上一篇文章&#xff0c;现在接着来讲讲TCP/IP的可靠性以及通过代码的实现。 在TCP首部的…

Xilinx AXI VIP使用教程

AXI接口虽然经常使用&#xff0c;很多同学可能并不清楚Vivado里面也集成了AXI的Verification IP&#xff0c;可以当做AXI的master、pass through和slave&#xff0c;本次内容我们看下AXI VIP当作master时如何使用。 新建Vivado工程&#xff0c;并新建block design&#xff0c;命…

postgresql四种逻辑复制的状态

准备 CreateCheckpoint&#xff0c;或者bgwriter启动时&#xff0c;或者创建logicalreplicationslot时都会调用LogStandbySnapshot 记录一个XLOG_RUNNING_XACTS类型的日志。日志中记录了所有提交的事务的xid(HistoricSnapshot) 启动&#xff08;SNAPBUILD_BUILDING_SNAPSHOT&…

专访伊士曼中国区高管赵志伟:以创新应对新能源汽车后市场变化

受访人&#xff1a;伊士曼高性能膜事业部中国区商务总监赵志伟 新能源汽车发展至规模化阶段&#xff0c;以贴膜、保养维修为主的后市场产业迎来快速崛起&#xff0c;新能源消费者在汽车贴膜、改装和养护领域也表现出比燃油车更高频的需求度。 作为一家全球特种材料公司&#x…

【设计模式——学习笔记】23种设计模式——外观模式Facade(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入介绍基本介绍类图出场角色 案例实现案例一类图代码实现 案例二类图代码实现 外观模式在Mybatis源码中的应用总结文章说明 案例引入 在家庭影院中&#xff0c;要享受一场电影&#xff0c;需要如下步骤&#xff1a; 直接用遥控器&#xff1a;统筹各设备开关开…

蓝海卓越计费管理系统远程命令执行

活着&#xff0c;就要时刻准备承受磨难&#xff01; 漏洞描述 蓝海卓越计费管理系统存在命令调试页面&#xff0c;导致攻击者可以远程命令执行 漏洞复现 访问 debug.php页面 远程调试命令执行 /debug.php漏洞证明 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝…

iOS--通知、代理、单例模式总结

通知 概要 观察者和被观察者都无需知晓对方&#xff0c;只需要通过标记在NSNotificationCenter中找到监听该通知所对应的类&#xff0c;从而调用该类的方法。并且在NSNotificationCenter中&#xff0c;观察者可以只订阅某一特定的通知&#xff0c;并对齐做出相应操作&#xf…