当前位置: 首页 > news >正文

Jekins篇(搭建/安装/配置)

目录

一、环境准备

1. Jenkins安装和持续集成环境配置

2. 服务器列表

3. 安装环境 Jekins 环境

4. JDK 环境

5. Maven环境

6. Git环境

方法一:yum安装

二、JenKins 安装

1. JenKins 访问

2. jenkins 初始化配置

三、Jenkins 配置

1. 镜像配置

四、Maven 安装和配置

五、Tomcat 安装和配置


一、环境准备

1. Jenkins安装和持续集成环境配置

1、首先,开发人员每天进行代码提交,提交到Git仓库

2、然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDK,Maven等软件

完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。

3、最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。

2. 服务器列表

这儿演示,虚拟机统一采用CentOS7!

名称

Ip

软件

代码托管

192.168.0.108

Gitlab10.8.4

持续集成

192.168.0.109

Jenkins2.22,JDK1.8,Maven3.6.1,Git2.2,

应用服务器

192.168.0.110

Tomcat8,JDK1.8

Gitlab之前有安装过不再复述。

3. 安装环境 Jekins 环境

切换到192.168.0.109机器

jdk----Jenkins使用java开发,首先必然需要安装jdk。

tomcat----Jenkins是一个web应用程序,运行当然需要中间件;

Jenkins的war包中包含了一个叫winstone的应用服务器所以可以直接运行,但在生产环境建议安装tomcat等独

立中间件。

下载解压即可。

maven----Jenkins使用maven构建,所以也需要安装maven。下载解压即可。

4. JDK 环境

这里是将环境变量配置在etc/profile,即为所有用户配置JDK环境。

sudo vi /etc/profile

配置环境变量(注意jdk位置)

#set java env
export JAVA_HOME= /usr/local/tools/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

执行命令使之生效:

source /etc/profile

javac测试好用即可

5. Maven环境

运行以下命令,下载maven安装文件

wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
  • 运行tar zvxf apache-maven-3.6.1-bin.tar.gz,解压
  • 编辑文件apache-maven-3.6.1/conf/settings.xml,可以指定本地仓库或者私服(默认)
  • 开始配置环境变量,编辑文件/etc/profile
  • 在最下面添加以下内容(MAVEN_HOME是刚才解压maven的路径)
export MAVEN_HOME=/usr/local/tools/apache-maven-3.6.1export PATH=$MAVEN_HOME/bin:$PATHsource /etc/profile

6. Git环境

方法一:yum安装

1、在Linux上是有yum安装Git,非常简单,只需要一行命令

yum -y install git

输入 git --version查看Git是否安装完成以及查看其版本号

顺便说一下,yum安装git被安装在/usr/libexec/git-core目录下

至此,yum安装git完成。

注意:yum安装的版本不能控制。默认的1.8.3.

我们想自己指定版本就要通过源码下载安装。

如下:

1、 进入git在GitHub上发布版本页面https://github.com/git/git/tags,这个页面我们可以找到所有git已发布

的版本。

这里我们选择最新版的tar.gz包。下载的源码是2.22:https://github.com/git/git/archive/v2.22.2.tar.gz

tar -zxvf git-2.22.0.tar.gz

2、进入到解压后的文件夹

cd git-2.22.0

3、拿到解压后的源码以后我们需要编译源码了,不过在此之前需要安装编译所需要的依赖。

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

耐心等待安装完成,中途出现提示的时候输入y并按回车。

4、提示,安装编译源码所需依赖的时候,yum自动帮你安装了git,这时候你需要先卸载这个旧版的git。

yum -y remove git

5、编译git源码

make prefix=/usr/local/git all

6、安装git至/usr/local/git路径

make prefix=/usr/local/git install

7、配置环境变量

vi /etc/profile 

在底部加上

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

( 输入 :wq! 保存修改)

8、刷新环境变量

source /etc/profile

9、查看Git是否安装完成

git --version

至此,从github上下载最新的源码编译后安装git完成。

二、JenKins 安装

下载地址:Download and deploy

直接选war包下载

jenkins.war

各个版本Jenkins下载

浏览器下载慢到fuck,可以借助迅雷等下载。

1. JenKins 访问

如果使用tomcat,那么在jenkins下载完后将war包直接复制到tomcat的webapps目录下,然后启动tomcat

启动完成后直接访问链接:http://192.168.0.108:8080/jenkins/

2. jenkins 初始化配置

初次访问http://192.168.0.108:8080/jenkins/,出现如下界面。

密码在启动控制台打印出来,如果没找到,那到图中提示的文件查看即可。

点击继续

注意注意注意!!!!选择第二个自定义安装,然后选择无。

创建用户并且实例配置

三、Jenkins 配置

1. 镜像配置

重点来啦:

我们要修改 Jenkins 插件下载地址,否则Jenkins会让你怀疑人生。

以上的配置 Json 其实在 Jenkins 的工作目录中

$ cd {你的Jenkins工作目录}/updates  #进入更新配置位置

tomcat 安装的在 /root/.jenkins 里面 updates

vim default.json   #这个Json文件与上边的配置文件是相同的

Copy

这里 wiki 和 github 的文档不用改,我们就可以成功修改这个配置

使用 vim 的命令,如下,替换所有插件下载的 url

:1,$s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g

Copy

替换连接测试url

:1,$s/http:\/\/www.google.com/https:\/\/www.baidu.com/g

Bash

Copy

进入vim先输入:然后再粘贴上边的:后边的命令,注意不要写两个冒号!

修改完成保存退出:wq

修改URL为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

提交

重启 http://192.168.0.109:8080/jenkins/restart

测试镜像

下载中文汉化插件

Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"

安装。重启Jenkins后,就看到Jenkins汉化了!不同版本可能部分菜单汉化会失败。

四、Maven 安装和配置

下载解压,这些都省略

修改Maven的settings.xml

mkdir /root/repo 创建本地仓库目录

vi /opt/maven/conf/settings.xml

本地仓库改为:/root/repo/

添加阿里云私服地址:

<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>

测试Maven是否配置成功,使用之前的gitlab密码测试项目,修改配置

输入

mvn clean package

构建完成

可以看到war包

在Jenkins中配置全局环境变量

五、Tomcat 安装和配置

切换到192.168.0.110机器

准备好jdk,Tomcat

配置Tomcat用户角色权限,默认情况下Tomcat是没有配置用户角色权限的

后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置,添加用户及权限

vi conf/tomcat-users.xml

注意:配置文件不要折行。

<tomcat-users>
<role  rolename="tomcat"/>
<role  rolename="role1"/>
<role  rolename="manager-script"/>
<role  rolename="manager-gui"/>
<role  rolename="manager-status"/>
<role  rolename="admin-gui"/>
<role  rolename="admin-script"/>
<user  username="tomcat"  password="tomcat"  roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
</tomcat-users>

用户和密码都是:tomcat

注意:为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

vi /webapps/manager/META-INF/context.xml
<!--<Valve  className="org.apache.catalina.valves.RemoteAddrValve"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"  />-->

把上面这行注释掉即可! 重启Tomcat,访问测试

相关文章:

Jekins篇(搭建/安装/配置)

目录 一、环境准备 1. Jenkins安装和持续集成环境配置 2. 服务器列表 3. 安装环境 Jekins 环境 4. JDK 环境 5. Maven环境 6. Git环境 方法一&#xff1a;yum安装 二、JenKins 安装 1. JenKins 访问 2. jenkins 初始化配置 三、Jenkins 配置 1. 镜像配置 四、Mave…...

【工具变量】排污权交易政策试点DID(2000-2023)

数据简介&#xff1a;在过去几十年间的“高增长、高能耗、高污染”的经济发展背景下&#xff0c;随着社会各界不断反应高经济增长背后付出的巨大环境代价&#xff0c;中国ZF将节能环保减排纳入长期规划治理中。在2007年&#xff0c;我国开始启动了二氧化硫&#xff08;SO2&…...

Proteus中数码管动态扫描显示不全(已解决)

文章目录 前言解决方法后记 前言 我是直接把以前写的 51 数码管程序复制过来的&#xff0c;当时看的郭天祥的视频&#xff0c;先送段选&#xff0c;消隐后送位选&#xff0c;最后来个 1ms 的延时。 代码在 Proteus 中数码管静态是可以的&#xff0c;动态显示出了问题——显示…...

证件照尺寸168宽240高,如何手机自拍更换蓝底

在提供学籍照片及一些社会化考试报名时&#xff0c;会要求我们提供尺寸为168*240像素的电子版证件照&#xff0c;本文将介绍如何使用“报名电子照助手”&#xff0c;借助手机拍照功能完成证件照的拍摄和背景更换&#xff0c;特别是如何将照片尺寸调整为168像素宽和240像素高&am…...

力扣.167 两数之和 II two-sum-ii

数组系列 力扣数据结构之数组-00-概览 力扣.53 最大子数组和 maximum-subarray 力扣.128 最长连续序列 longest-consecutive-sequence 力扣.1 两数之和 N 种解法 two-sum 力扣.167 两数之和 II two-sum-ii 力扣.170 两数之和 III two-sum-iii 力扣.653 两数之和 IV two-…...

ipconfig

本文内容来自智谱清言的回答。 ------ 以太网适配器 以太网: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : 以太网适配器 以太网: 这部分表示正在显示名为“以太网”的网络适配器的信息。在 Windows 中&#xff0c;默认的以太…...

Qt_day3_信号槽

目录 信号槽 1. 概念 2. 函数原型 3. 连接方式 3.1 自带信号 → 自带槽 3.2 自带信号 → 自定义槽 3.3 自定义信号 4. 信号槽传参 5. 对应关系 5.1 一对多 5.2 多对一 信号槽 1. 概念 之前的程序界面只能看&#xff0c;不能交互&#xff0c;信号槽可以让界面进行人机…...

求从2开始的第n个素数

方法一&#xff1a;暴力法 思路&#xff1a;从2开始&#xff0c;逐个判断每个数是否为素数。素数是除了1和它自身外&#xff0c;不能被其他自然数整除的数。对于每个数m&#xff0c;从2到sqrt(m)遍历&#xff0c;如果能被整除则不是素数。当找到n个素数时停止。 C 代码如下&am…...

【Android】View—基础知识,滑动,弹性滑动

基础知识 什么是View 在 Android 中&#xff0c;View 是用户界面&#xff08;UI&#xff09;中的基本组件&#xff0c;用于绘制图形和处理用户交互。所有的 UI 组件&#xff08;如按钮、文本框、图片等&#xff09;都是 View 的子类。可以说&#xff0c;View 是构建 Android …...

MYSQL中的两种转义操作

在 MySQL 中&#xff0c;转义字符用于处理特殊字符,以防止语法错误或 SQL 注入攻击,而单双引号都是需要重点注意的字符 可以用转义符\ 和 两个连续的引号 来起到转义引号的作用 转义符转义: 这是users表中的数据 如果查询admin 或者 admin" 用户,可以用转义符\ 两个连…...

力扣题目解析--删除链表的倒数第n个节点

题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 3&…...

Knowledge Graph-Enhanced Large Language Models via Path Selection

研究背景 研究问题&#xff1a;这篇文章要解决的问题是大型语言模型&#xff08;LLMs&#xff09;在生成输出时存在的事实不准确性&#xff0c;即所谓的幻觉问题。尽管LLMs在各种实际应用中表现出色&#xff0c;但当遇到超出训练语料库范围的新知识时&#xff0c;它们通常会生…...

Android 项目模型配置管理

Android 项目配置管理 项目模型相关的配置管理config.gradle文件&#xff1a;build.gradle文件&#xff1a; 参考地址 项目模型相关的配置管理 以下是一个完整的build.gradle和config.gradle示例&#xff1a; config.gradle文件&#xff1a; ext {// 模型相关配置&#xff0…...

「QT」几何数据类 之 QSizeF 浮点型尺寸类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

Essential Cell Biology--Fifth Edition--Chapter one(2)

1.1.1.3 Living Cells Are Self-Replicating Collections of Catalysts 催化剂集合 生物最常被引用的特性之一是它们的繁殖能力。对于细胞来说&#xff0c;这个过程包括复制它们的遗传物质和其他成分&#xff0c;然后分裂成两个&#xff0c;产生一对子细胞[daughter cells]&a…...

大语言模型LLMs在医学领域的最新进展总结

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 相比其他学科&#xff0c;医学AI&#xff0c;是发表学术成果最多的领域。 医学数据的多样性和复杂性&#xff08;包括文本、图像、基因组数据等&#xff09;&#xff0c;使得…...

云防护单节点2T抗攻击能力意味着什么?

随着互联网的发展&#xff0c;DDoS攻击的规模和频率不断增加&#xff0c;对企业和个人用户的网络服务造成了严重威胁。云防护服务作为一种高效的DDoS防护手段&#xff0c;逐渐成为许多企业的首选。本文将重点讨论云防护单节点2T&#xff08;太比特每秒&#xff09;抗攻击能力的…...

IDEA在编译时: java: 找不到符号符号: 变量 log

一、问题 IDEA在编译的时候报Error:(30, 17) java: 找不到符号符号: 变量 log Error:(30, 17) java: 找不到符号 符号: 变量 log 位置: 类 com.mokerson.rabbitmq.config.RabbitMqConfig 二、解决方案 背景&#xff1a;下载其他同事代码时&#xff0c;第一次运行&#xff0c…...

HTML 基础架构:理解网页的骨架

HTML的文档结构主要由以下几个部分组成&#xff1a;<html>、<head>和<body>。 <html>标签是HTML文档的根元素&#xff0c;用来包裹整个HTML文档的内容。<head>标签用于定义文档的头部&#xff0c;包含了一些元数据和其他不直接显示在页面上的内…...

FPGA学习笔记#5 Vitis HLS For循环的优化(1)

本笔记使用的Vitis HLS版本为2022.2&#xff0c;在windows11下运行&#xff0c;仿真part为xcku15p_CIV-ffva1156-2LV-e&#xff0c;主要根据教程&#xff1a;跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 从这一篇开始正式进入HLS对C代码的优化笔记 目录 1.循环优化中的基…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...