IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 部署Jenkins+GitLab+Maven+Nexus+SonarQube持续集成环境 -> 正文阅读

[Java知识库]部署Jenkins+GitLab+Maven+Nexus+SonarQube持续集成环境

一、相关概念介绍:

持续(Continuous):不断地获取反馈、响应反馈

集成(Integration):编译、打包、测试

部署(Deployment):应用组件或基本设施的代码或配置变更在产品环境生效

发布(Release):具有业务影响的功能变化对最终用户可见

交付(Delivery):可以理解为从Deployment到Release之间的阶段,强调的是一种能力,开发有能力频繁部署,业务有能力随时发布
在这里插入图片描述
Jenkins:开源的、可扩展的、基于Web界面的持续集成平台

Git:开源的分布式版本控制系统

GitLab:用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务

Maven:基于项目对象模型(POM)的项目管理及自动构建工具,用于编译源码并打包

Nexus:Maven私服
在这里插入图片描述
SonarQube:用于代码质量管理和检测的开源平台

Node.js:基于Chrome V8引擎的JavaScript运行环境

ZrLog:开源Java博客系统(编译打包发布后为zrlog-2.1.3.war)

二、准备工作(3个节点都需要执行如下操作):

1、演示环境:
在这里插入图片描述
演示目标:修改本地ZrLog项目的源码,通过Git提交至GitLab,如果推送master分支的代码会触发Jenkins自动使用Maven构建项目,而推送dev分支的代码则不会触发Jenkins使用Maven构建项目,项目构建完成后通过SonarQube对代码进行质量管理和检测,最终发布至远程节点的Tomcat中自动解压执行

2、关闭SELinux和firewalld

3、配置epel源

4、配置节点时间同步

5、配置主机名

6、配置/etc/hosts文件:

vim /etc/hosts

192.168.1.144 node1

192.168.1.145 node2

192.168.1.146 node3

7、下载所需软件包:

(1)JDK:https://www.oracle.com/technetwork/java/javase/downloads/index.html

(2)Node.js:http://nodejs.cn/download/

(3)Git:https://mirrors.edge.kernel.org/pub/software/scm/git/

(4)Maven:http://maven.apache.org/download.cgi

(5)Nexus:https://www.sonatype.com/download-oss-sonatype

(6)Tomcat:http://tomcat.apache.org/

(7)SonarQube:https://www.sonarqube.org/downloads/

(8)ZrLog:https://github.com/*4fzb/zrlog

备注:由于51CTO违禁词规则,请将上述*换成9,再进行访问

三、3个节点分别部署对应软件包:

1、node1和node3节点分别部署JDK:

(1)解压JDK:

tar -xf jdk-8u221-linux-x64.tar.gz -C /usr/local

cd /usr/local

ln -sv jdk1.8.0_221 jdk

(2)配置JDK环境变量:

vim /etc/profile.d/jdk.sh

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAH?OME/lib/dt.jar:JAVA_HOME/lib/tools.jar

export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAH?OME/bin:PATH

. /etc/profile.d/jdk.sh

echo $JAVA_HOME

2、node1节点部署Node.js:

(1)解压Node.js:

tar -xf node-v12.10.0-linux-x64.tar.xz -C /usr/local

cd /usr/local

ln -sv node-v12.10.0-linux-x64 node

(2)配置Node.js环境变量:

vim /etc/profile.d/node.sh

export NODE_HOME=/usr/local/node

export PATH= N O D E H O M E / b i n : NODE_HOME/bin: NODEH?OME/bin:PATH

export NODE_PATH=$NODE_HOME/lib/node_modules

. /etc/profile.d/node.sh

echo $NODE_HOME

备注:如果不安装Node.js,之后在构建ZrLog项目,SonarQube Scanner执行扫描时会提示“ERROR: Failed to get Node.js version. No CSS files will be analyzed.”

3、node1节点部署Git:

(1)安装依赖软件包:

yum -y install gcc perl-ExtUtils-MakeMaker curl-devel expat-devel gettext-devel openssl-devel zlib-devel

(2)编译安装Git:

tar -xf git-2.23.0.tar.xz -C /usr/src

cd /usr/src/git-2.23.0

./configure --prefix=/usr/local/git-2.23.0

make && make install

cd /usr/local

ln -sv git-2.23.0 git

(3)配置Git环境变量:

vim /etc/profile.d/git.sh

export PATH=/usr/local/git/bin:$PATH

. /etc/profile.d/git.sh

(4)查看Git版本信息:# git --version

备注:yum方式安装的Git版本为1.8.3,版本太低

(5)创建本地用于存放ZrLog源码的目录:# mkdir -pv /projects

(6)初始化Git仓库,并克隆ZrLog源码:

cd /projects

git init

git clone https://github.com/*4fzb/zrlog.git

在这里插入图片描述

ls -a

ls -a .git

ls -a zrlog

4、node2节点部署GitLab:

(1)创建清华大学开源软件镜像站的yum仓库,下载速度快:

vim /etc/yum.repos.d/gitlab-ce.repo

[gitlab-ce]

name=GitLab CE Repository

baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/

gpgcheck=0

enabled=1

yum clean all

yum makecache

yum repolist

(2)安装GitLab:# yum -y install gitlab-ce
在这里插入图片描述
(3)修改gitlab.rb配置文件:

vim /etc/gitlab/gitlab.rb

注释代码:external_url ‘http://gitlab.example.com’

新增代码:external_url ‘http://192.168.1.145:8000’

新增代码:nginx[‘listen_port’] = 8000

gitlab-ctl reconfigure

在这里插入图片描述
在这里插入图片描述

gitlab-ctl status

在这里插入图片描述

systemctl status gitlab-runsvdir.service

ps aux | grep gitlab

ss -tunlp | grep 8000

备注:可使用# gitlab-ctl help查看gitlab-ctl命令更为详细的用法

(4)配置GitLab开机自启:# systemctl enable gitlab-runsvdir.service

(5)浏览器访问http://192.168.1.145:8000,输入新密码root@123,点击“Change your password”:
在这里插入图片描述
登录:用户名root,密码root@123
在这里插入图片描述
在这里插入图片描述
(6)配置GitLab邮件服务:

vim /etc/gitlab/gitlab.rb

修改如下代码:
在这里插入图片描述
gitlab_rails[‘smtp_enable’] = true

gitlab_rails[‘smtp_address’] = “smtp.qq.com”

gitlab_rails[‘smtp_port’] = 465

gitlab_rails[‘smtp_user_name’] = “834143808@qq.com”

gitlab_rails[‘smtp_password’] = “QQ邮箱授权码”

gitlab_rails[‘smtp_domain’] = “qq.com”

gitlab_rails[‘smtp_authentication’] = “login”

gitlab_rails[‘smtp_enable_starttls_auto’] = true

gitlab_rails[‘smtp_tls’] = true

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:22:16  更:2022-01-17 11:23:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:26:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码