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环境 方法一:yum安装 二、JenKins 安装 1. JenKins 访问 2. jenkins 初始化配置 三、Jenkins 配置 1. 镜像配置 四、Mave…...

【工具变量】排污权交易政策试点DID(2000-2023)
数据简介:在过去几十年间的“高增长、高能耗、高污染”的经济发展背景下,随着社会各界不断反应高经济增长背后付出的巨大环境代价,中国ZF将节能环保减排纳入长期规划治理中。在2007年,我国开始启动了二氧化硫(SO2&…...

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

证件照尺寸168宽240高,如何手机自拍更换蓝底
在提供学籍照片及一些社会化考试报名时,会要求我们提供尺寸为168*240像素的电子版证件照,本文将介绍如何使用“报名电子照助手”,借助手机拍照功能完成证件照的拍摄和背景更换,特别是如何将照片尺寸调整为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 中,默认的以太…...

Qt_day3_信号槽
目录 信号槽 1. 概念 2. 函数原型 3. 连接方式 3.1 自带信号 → 自带槽 3.2 自带信号 → 自定义槽 3.3 自定义信号 4. 信号槽传参 5. 对应关系 5.1 一对多 5.2 多对一 信号槽 1. 概念 之前的程序界面只能看,不能交互,信号槽可以让界面进行人机…...
求从2开始的第n个素数
方法一:暴力法 思路:从2开始,逐个判断每个数是否为素数。素数是除了1和它自身外,不能被其他自然数整除的数。对于每个数m,从2到sqrt(m)遍历,如果能被整除则不是素数。当找到n个素数时停止。 C 代码如下&am…...

【Android】View—基础知识,滑动,弹性滑动
基础知识 什么是View 在 Android 中,View 是用户界面(UI)中的基本组件,用于绘制图形和处理用户交互。所有的 UI 组件(如按钮、文本框、图片等)都是 View 的子类。可以说,View 是构建 Android …...

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

力扣题目解析--删除链表的倒数第n个节点
题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&…...

Knowledge Graph-Enhanced Large Language Models via Path Selection
研究背景 研究问题:这篇文章要解决的问题是大型语言模型(LLMs)在生成输出时存在的事实不准确性,即所谓的幻觉问题。尽管LLMs在各种实际应用中表现出色,但当遇到超出训练语料库范围的新知识时,它们通常会生…...
Android 项目模型配置管理
Android 项目配置管理 项目模型相关的配置管理config.gradle文件:build.gradle文件: 参考地址 项目模型相关的配置管理 以下是一个完整的build.gradle和config.gradle示例: config.gradle文件: ext {// 模型相关配置࿰…...

「QT」几何数据类 之 QSizeF 浮点型尺寸类
✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「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 催化剂集合 生物最常被引用的特性之一是它们的繁殖能力。对于细胞来说,这个过程包括复制它们的遗传物质和其他成分,然后分裂成两个,产生一对子细胞[daughter cells]&a…...

大语言模型LLMs在医学领域的最新进展总结
我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 相比其他学科,医学AI,是发表学术成果最多的领域。 医学数据的多样性和复杂性(包括文本、图像、基因组数据等),使得…...
云防护单节点2T抗攻击能力意味着什么?
随着互联网的发展,DDoS攻击的规模和频率不断增加,对企业和个人用户的网络服务造成了严重威胁。云防护服务作为一种高效的DDoS防护手段,逐渐成为许多企业的首选。本文将重点讨论云防护单节点2T(太比特每秒)抗攻击能力的…...

IDEA在编译时: java: 找不到符号符号: 变量 log
一、问题 IDEA在编译的时候报Error:(30, 17) java: 找不到符号符号: 变量 log Error:(30, 17) java: 找不到符号 符号: 变量 log 位置: 类 com.mokerson.rabbitmq.config.RabbitMqConfig 二、解决方案 背景:下载其他同事代码时,第一次运行,…...
HTML 基础架构:理解网页的骨架
HTML的文档结构主要由以下几个部分组成:<html>、<head>和<body>。 <html>标签是HTML文档的根元素,用来包裹整个HTML文档的内容。<head>标签用于定义文档的头部,包含了一些元数据和其他不直接显示在页面上的内…...

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

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...

Tauri2学习笔记
教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...

SQL注入篇-sqlmap的配置和使用
在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc…...

【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...