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-128 192.168.17.128 docker,kubectl,kubeadm,containerd,keepalived,haproxy
node-129 192.168.17.129 docker,kubectl,kubeadm,containerd,keepalived,haproxy
node-130 192.168.17.130 docker,kublet, kube-proxy,containerd
node-131 192.168.17.131 docker,kublet, kube-proxy,containerd
node-132 192.168.17.132 docker,gitlab-ce,jenkins,nexus,java11
node-133 192.168.17.133 docker,maven,java11
node-134 192.168.17.133 docker,harbor

windows服务器操作系统为Windows 11

主机名 IP 地址 所需组件
node-157 192.168.2.157 java,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"

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

访问:http://localhost:8070/actuator/bus-refresh 问题

1、请求发送不出去 原因: 自己 config-server端 application.yml 配置的端口号是8888,访问server修改为配置的端口号 2、请求报错405 几个解决办法: 1、版本问题变为busrefresh 2、bus-refresh加单引号或双引号尝试 3、加配置尝试&#xff1a…

【MySQL】复合查询

目录 一、基本查询 1、查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J 2、按照部门号升序而雇员的工资降序排序 3、使用年薪进行降序排序 4、显示工资最高的员工的名字和工作岗位 5、显示工资高于平均工资的员工信息 6、显示每…

【Lua学习笔记】Lua进阶——Table,迭代器

文章目录 官方唯一指定数据结构--tabletable的一万种用法字典和数组 迭代器ipairs()pairs() 回到Table 在【Lua学习笔记】Lua入门中我们讲到了Lua的一些入门知识点,本文将补充Lua的一些进阶知识 官方唯一指定数据结构–table 在上篇文章的最后,我们指出…

【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word

一、飞书导出markdown github地址:https://github.com/Wsine/feishu2md 这是一个下载飞书文档为 Markdown 文件的工具,使用 Go 语言实现。 请看这里:招募有需求和有兴趣的开发者,共同探讨开发维护,有兴趣请联系。 二、…

Hive视图

hive的视图 简介 hive的视图简单理解为逻辑上的表hive只支持逻辑视图,不支持物化视图视图存在的意义 对数据进行局部暴露(涉及隐私的数据不暴露)简化复杂查询 创建视图: create view if not exists v_1 as select uid,movie f…

Esp32_Arduino接入腾讯云笔记

ESP32是一款由乐鑫科技(Espressif Systems)推出的双核、低功耗、集成Wi-Fi和蓝牙的单芯片微控制器。它采用了Tensilica Xtensa LX6高性能处理器,具有大量的GPIO引脚、模数转换器、SPI、I2S、UART、PWM、I2C和SD卡接口等功能,可以满…

vue数据单双渲染以及代码讲解

😀前言 本片文章是vue系列第2篇整理了vue的单双数据绑定以及代码讲解 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力&#x1f…

了解Unity编辑器之组件篇Tilemap(五)

Tilemap:用于创建和编辑2D网格地图的工具。Tilemap的主要作用是简化2D游戏中地图的创建、编辑和渲染过程。以下是一些Tilemap的主要用途: 2D地图绘制:Tilemap提供了一个可视化的编辑器界面,可以快速绘制2D地图,例如迷…

Flask 页面展示文件目录及文件,通过勾选复习框删除

(45条消息) flask 读取文件夹文件,展示在页面,可以通过勾选删除_U盘失踪了的博客-CSDN博客 基本实现 针对上面的功能再优化 项目结构 app.py import os import shutil from flask import Flask, render_template, request, redirect, url_forapp F…

服务器数据恢复-Windows服务器RAID5数据恢复案例

服务器数据恢复环境: 一台服务器挂载三台IBM某型号存储设备,共64块SAS硬盘,组建RAID5磁盘阵列; 服务器操作系统:Windows Server;文件系统:NTFS。 服务器故障: 一台存储中的一块硬盘离…

android app控制ros机器人一

android开发app,进而通过控制ros机器人,记录开发过程 查阅资料: rosjava使用较多,已经开发好的app也有开源的案例 rosjava GitHub https://github.com/ros-autom/RobotCA https://github.com/ROS-Mobile/ROS-Mobile-Android…

Godot 4 着色器 - Shader调试

我之前用OpenCV进行图像相关处理,觉得已经很不错,结合GDI可以实现流畅的动画效果 直到近来用Shader后才发现,着色器更上一层楼,原来这是入了GPU的坑 Shader编程限制很多,各种不支持,看在它性能不错功能炫…

vue 封装一个鼠标拖动选择时间段功能

<template><div class"timeRange"><div class"calendar"><table><thead><tr><th rowspan"6" class"weekRow"><b>周/时间</b></th><th colspan"24"><…

vue中的数据代理

vue数据代理 Vue实现数据代理的核心----Object.defineProperty(); 数据代理 数据代理的定义是&#xff1a;一个对象操作(读\写)另一个对象中的属性和方法。 // 数据代理&#xff1a;通过一个对象代理对另一个对象中属性的操作&#xff08;读/写&#xff09;let obj { x: 100…

vue element ui web端引入百度地图,并获取经纬度

最近接到一个新需要&#xff0c;要求如下&#xff1a; 当我点击选择地址时&#xff0c;弹出百度地图&#xff0c; 效果如下图&#xff1a; 实现方法&#xff1a; 1、首先要在百度地图开放平台去申请一个账号和key 2、申请好之后&#xff0c;在项目的index.html中引入 3、…

Error: Please select Android SDK解决方案(仅供参考)

一、问题描述 今天开始正式接触项目的工作内容&#xff0c;然后从组里的代码仓库里git clone了一份Android Studio项目下来。下好了以后我使用Android Studio打开这个项目&#xff0c;但在尝试编译运行的时候遇到了很多错误。例如&#xff0c;开发环境界面上边用于编译的小锤子…

五,Eureka 第五章

5.3.2 修改pom添加依赖 <dependencies><!--公共部门--><dependency><groupId>cn.bdqn</groupId><artifactId>springcloud-api-commons</artifactId><version>${project.version}</version></dependency><!--e…

Python电商爬虫保姆级入门教程(纯新手向)

图灵Python课堂 长沙图灵教育于2001年开始进入教育行业&#xff0c;立足泛IT类职业教育&#xff0c;以打造高新技术人才为宗旨&#xff0c;专注于提供多层次、个性化的职业技能培训课程&#xff0c;为各行业培养技术开发、应用和管理等岗位的中高端人才&#xff0c;致力于成为…

Python学习笔记-Django框架基础,APP,数据模型,后台管理,路由

一、Django框架简介 Django框架是Python的常用web框架&#xff0c;遵循 MVC 设计模式的框架&#xff0c;采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的&#xff0c;即是CMS&…

双虚拟机实现数据库自动备份

FTP的使用&#xff1a; 1.安装FTP 1、检测系统有没有安装ftp&#xff0c;执行命令&#xff1a; rpm -qa | grep ftp若存在用rpm命令移除后再行安装&#xff0c;执行命令&#xff1a; rpm -e vsftpd-3.0.2-9.e17.x86_642、如果没有安装&#xff0c;则在线安装ftp&#xff0c…