关联文章:GitLab部署
1.为什么使用GitLab-开发运维一体化
2. 部署安装GitLab使用git,还需要一个远程代码仓库。常见的github、gitee这种远程代码仓库,公司中一般不会使用,因为他们是使用外网的,不够安全。一般企业都会搭建一个仅内网使用的远程代码仓库,最常见就是 GitLab。
2.1 安装部署GitLab一般由公司的运维人员安装部署,开发人员只需要申请账号和相应权限即可,在这里我们在hadoop104上自己安装GitLab社区版体验一下。
2.1.1 安装准备1)需要开启ssh:(已开启可跳过)
123sudo systemctl status sshdsudo systemctl enable sshdsudo systemctl start sshd
2)防火墙开放http、https服务:(已关闭防火墙可跳过)
1234sudo systemctl status firewalldsudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add ...
0.资源下载
JDK和脚本下载地址:https://www.123pan.com/s/eeJbVv-fo7UA.html
1.安装jdk1.81.上传jdk安装包:上传到某个目录,例如:/usr/local/
2.然后解压缩:
1tar -xvf jdk-8u144-linux-x64.tar.gz
然后重命名为java
1mv jdk1.8.0_144 java
3.配置环境变量:
12export JAVA_HOME=/usr/local/javaexport PATH=$PATH:$JAVA_HOME/bin
4.设置环境变量:
1source /etc/profile
2.运行jar脚本1.上传到某个目录,例如:/opt
2.然后运行脚本
1java -jar ceshi.jar
3.访问接口触发脚本【本机ip:8080/loadMemory】
1curl 127.0.0.1:8080/loadMemory
4.脚本正常运行
3.脚本源码1234567891011121314151617181920212223242526272829303132333435 ...
一、部署Seata的tc-server1.下载首先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html
在线下载:http://8.130.91.207:5244/d/airpan/seata-server-1.5.1.zip?sign=EGEAgrzb7o_PXRG9DHVmI4Dt2Q0GypnZD_uo4N3K0mg=:0
2.解压在非中文目录解压缩这个zip包,其目录结构如下:
3.修改配置修改conf目录下的application.yml文件:
内容如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950server: port: 7091spring: application: name: seata-serverlogging: config: classpath:logback-spring.xm ...
Windows本地Sonarqube扫描1. sonar扫描代码的三种途径
2.下载sonar-scanner
下载地址:http://8.130.91.207:5244/d/airpan/sonar-scanner-cli-6.1.0.4477-windows-x64.zip?sign=-HtbDiQOWl7Cqs0k8N2J8aER7nB_NJCGrRsDqB4Ao90=:0
3.配置sonar-scanner环境变量的配置:
验证配置成功
命令行输入sonar-scanner -version,出现下面界面表示sonar-scanner安装配置成功。
4.使用sonar-scanner
1.到要检查的代码根目录下创建文件sonar-project.properties
配置详情:1234567891011121314151617181920# 改成自己的标识,随便写一个sonar.projectKey=xxxxx# 名称改成:项目名称【英文】-姓名【英文】sonar.projectName=YypWeixinBack-sunhaosonar.projectVersion= ...
7.1 Sonar Qube介绍Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。
Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来
Sonar Qube的UI界面
7.2 Sonar Qube环境搭建7.2.1 Sonar Qube安装Sonar Qube在7.9版本中已经放弃了对MySQL的支持,并且建议在商业环境中采用PostgreSQL,那么安装Sonar Qube时需要依赖PostgreSQL。
并且这里会安装Sonar Qube的长期支持版本8.9
拉取镜像
12docker pull postgresdocker pull sonarqube:8.9.3-community
编写docker-compoe.yml
12345678910111213141516171819202 ...
CI、CD入门操作基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成
基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署
6.1 持续集成为了让程序代码可以自动推送到测试环境基于Docker服务运行,需要添加Docker配置和脚本文件让程序可以在集成到主干的同时运行起来。
添加Dockerfile文件
构建自定义镜像
添加docker-compose.yml文件
加载自定义镜像启动容器
追加Jenkins构建后操作脚本命令
构建后发布并执行脚本命令
发布到GitLab后由Jenkins立即构建并托送到目标服务器
构建日志
测试部署到目标服务器程序
查看目标服务器并测试接口
6.2 持续交付、部署程序代码在经过多次集成操作到达最终可以交付,持续交付整体流程和持续集成类似,不过需要选取指定的发行版本
下载Git Parameter插件
下载Git Parameter
...
持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。
Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。
Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。
5.1 Jenkins介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具
Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。
Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。
Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境。
一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。
CI/CD可以理解为:
CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
持续集成:让软件代码可以持续的 ...
Operate阶段工具部署过程,会采用Docker进行部署,暂时只安装Docker即可,后续还需安装Kubenetes
4.1 Docker安装
准备测试环境&生产环境hexo
下载Docker依赖组件
1yum -y install yum-utils device-mapper-persistent-data lvm2
设置下载Docker的镜像源为阿里云
1yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker服务
1yum -y install docker-ce
安装成功后,启动Docker并设置开机自启
1234# 启动Docker服务systemctl start docker# 设置开机自动启动systemctl enable docker
测试安装成功
1docker version
效果
4.2 Docker-Compose安装
下载Docker/Compose:h ...
DevOps一、DevOps介绍软件开发最开始是由两个团队组成:
开发计划由开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。
运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。
这看似两个目标不同的团队需要协同完成一个软件的开发。
在开发团队指定好计划并完成coding后,需要提供到运维团队。
运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。
这时开发团队需要经常等待运维团队的反馈。这无疑延长了事件并推迟了整个软件开发的周期。
会有一种方式,在开发团队等待的时候,让开发团队转移到下一个项目中。等待运维团队为之前的代码提供反馈。
可是这样就意味着一个完整的项目需要一个更长的周期才可以开发出最终代码。
基于现在的互联网现状,更推崇敏捷式开发,这样就导致项目的迭代速度更快,但是由于开发团队与运维团队的沟通问题,会导致新版本上线的时间成本很高。这又违背的敏捷式开发的最初的目的。
那么如果让开发团队和运维团队整合到成一个团队,协同应对一套软件呢?这就被称为DevOps。
DevOps,字面意思是Development &Operati ...
问题描述Caused by: java.lang.UnsupportedClassVersionError: org/sonarsource/scanner/maven/SonarQubeMojo has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
处理方式在项目的pom.xml中添加plugin配置
12345<plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.11.0.3 ...





![DevOps搭建(五)-集成Sonar Qube[SonarQube,GitLab,Jenkins]](https://cdn.jsdelivr.net/gh/LisianthusW/pic_bed@main/images/2024/07/24/15-17-55-2021-11-23_175935-789003.png)
