系列文章目录
第一章 基础知识、数据类型学习
第二章 万年历项目
第三章 代码逻辑训练习题
第四章 方法、数组学习
第五章 图书管理系统项目
第六章 面向对象编程:封装、继承、多态学习
第七章 封装继承多态习题
第八章 常用类、包装类、异常处理机制学习
第九章 集合学习
第十章 IO流、多线程学习
第十一章 仓库管理系统JavaSE项目
第十二章 员工管理系统、多表查询、反射实现DBHelper学习
第十三章 DML、DDL、数据库对象学习
第十四章 网络编程、各种标签、CSS学习
第十五章 ECMAScript、BOM学习
第十六章 DOM、jQuery学习
第十七章 servlet、jsp、Cookie、Ajax学习
第十八章 融资管理系统JavaWeb项目
第十九章 MyBatis框架学习
第二十章 逆向工程、Spring框架IOC、AOP学习
第二十一章 SpringMVC框架学习
第二十二章 SpringBoot框架学习
第二十三章 招聘网站框架项目
第二十四章 Vue介绍、窗体内操作、窗体间操作学习
第二十六章 Vue路由配置、网络请求访问框架项目、element组件介绍学习
第二十五章 标准管理系统Vue项目
第二十六章 Linux安装、Nginx反向代理、负载均衡学习
第二十七章 Docker学习
第二十八章 Jenkins学习
文章目录
- 系列文章目录
- 前言
- 一、Jenkins介绍
- 1. Jenkins介绍
- 二、Jenkins安装
- 1. 上传文件
- 2. 安装Jenkins
- 3. 修改启动用户为root
- 4. 配置Java环境
- 5. 启动Jenkins
- 6. 检测目录
- 7. 登录
- 8. 修改密码
- 9. 安装插件
- 10. 拷贝插件
- 11. 重启Jenkins
- 三、Git设置
- 1. 上传文件
- 2. 解压压缩包
- 3. 安装所需依赖
- 4. 编译
- 5. 安装
- 6. 修改环境变量
- 7. 检查git
- 8. 在Jenkins添加git配置
- 四、Git流水线
- 1. 创建流水线
- 2. 测试流水线
- 五、Maven配置
- 1. 上传文件
- 2. 解压文件
- 3. 配置环境变量
- 4. 加载环境变量
- 5. 测试Maven安装成功与否
- 6. 替换Maven源
- 六、Maven流水线
- 1. 配置Maven环境变量
- 2. 第一段流水线:Git拉去代码
- 3. 第二段流水线:把下载的项目打包成.jar文件
- 4. 第三条流水线:将.jar文件做成Docker镜像
- 5. 第四段流水线:通过镜像创建容器并启动
- 6. 第五、六段流水线:删除已存在的容器和镜像
- 总结
前言
本文我们要讲述:
Jenkins
在下攸攸太上,我在69年6月9日,在电脑上吃了大粪,香的让我跳了起来。
一、Jenkins介绍
1. Jenkins介绍
Jenkins是一个开源的持续集成和持续交付(CI/CD)工具,用于自动化构建、测试和部署软件项目,通过灵活的插件架构和丰富的功能,实现了软件交付流程的自动化。
二、Jenkins安装
1. 上传文件
我们创建/usr/local/jenkins目录(建jenkins文件夹)
2. 安装Jenkins
cd /usr/local/jenkins
rpm -ivh jenkins-2.263-1.1.noarch.rpm
3. 修改启动用户为root
vim /etc/sysconfig/jenkins
在文件中将JENKINS_USER=“root”
4. 配置Java环境
vim /etc/rc.d/init.d/jenkins
在打开的文件中,在光标位置写入如下语句
/usr/local/jdk/jdk1.8.0_231/bin/java
5. 启动Jenkins
systemctl start jenkins
systemctl status jenkins
看到actice(running)代表启动成功
6. 检测目录
ll /var/lib/jenkins
看到很多文件,说明之前的步骤没有错误;
如果没有文件,说明之前的操作有误
7. 登录
通过虚拟机ip:8080访问
进入Jenkins网页,需要输入密码
密码查询语句
cat /var/lib/jenkins/secrets/initialAdminPassword
将密码输入密码栏,点击登录后略作等待
会出现插件安装界面,我们点击右上角的X跳过插件安装环节
8. 修改密码
我们点击右上角小人下的Configure,进入设置用户界面,将密码改成自己的密码后save。
后可以根据用户名和密码登录Jenkins
9. 安装插件
cd /usr/local/jenkens
tar -zxvf jenkins-plugins.tar.gz
ll plugins/ |wc -l
此为安装插件命令,先进入文件夹,后解压文件,最后查看解压后文件有多少个
10. 拷贝插件
cp -a plugins/* /var/lib/jenkins/plugins/
ll /var/lib/jenkins/plugins/ |wc -l
将下载好的插件拷贝到指定文件夹下,查看该目录下的文件个数,应该是191,我之后还做了其他操作,所以多了几个
11. 重启Jenkins
/etc/init.d/jenkins restart
刷新网页后再次登录,可以到Dashboard下的ManageJenkins
三、Git设置
1. 上传文件
将此文件放入/usr/local/git中(新建git文件夹)
2. 解压压缩包
cd /usr/local/git
tar -zxvf git-2.33.0.tar.gz
3. 安装所需依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
输入y
4. 编译
cd git-2.33.0
make prefix=/usr/local/git all
执行编译命令,需要等很长时间
5. 安装
make prefix=/usr/local/git install
6. 修改环境变量
vim /etc/profile
打开配置文件
将下面的代码复制到配置文件中
export PATH=$PATH:/usr/local/git/bin
7. 检查git
git --version
8. 在Jenkins添加git配置
在首页中打开Credentials
点击下方(global)
点击Add Credentials
写入用户名与密码后,点击ok
点击Update
可以看到ID已经自动生成了
四、Git流水线
1. 创建流水线
首页进入New Item
输入项目名称并选择Pipeline后ok
Description写入项目描述
滚到最底部点击
1、先在Sample Step中选择git:Git
2、创建一个将百度网盘中的240919_DemoNginx项目传到Git上,复制他的地址
https://gitee.com/jinjingyuan/240921foureight.git
3、Branch选择master
4、Credentials选择刚刚创建的用户
5、点击Generate Pipeline Script按钮
复制生成的流水线代码
git credentialsId: 'da6c7934-bfce-4e17-adb9-ec41d8c0fd35', url: 'https://gitee.com/jinjingyuan/240921foureight.git'
将复制的流水线代码用node包裹,放在Pipeline的Script中
以上步骤完毕后,点击Save
2. 测试流水线
在项目中点击Build Now
在运行的流水线中点击Console Output
最后会说SUCCESS
五、Maven配置
1. 上传文件
创建/usr/local/maven文件夹
放入maven压缩包
2. 解压文件
cd /usr/local/maven
tar -zxvf apache-maven-3.3.9-bin.tar.gz
3. 配置环境变量
vim /etc/profile
加入如下代码
MAVEN_HOME=/usr/local/maven/apache-maven-3.3.9
PATH=${MAVEN_HOME}/bin:${PATH}
export PATH
4. 加载环境变量
source /etc/profile
5. 测试Maven安装成功与否
mvn -v
6. 替换Maven源
vim /usr/local/maven/apache-maven-3.3.9/conf/settings.xml
进入settings.xml文件,找到nirrors标签,添加如下内容
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></mirror><localRepository>/usr/local/maven/apache-maven-3.3.9/repository</localRepository>
后创建/usr/local/maven/apache-maven-3.3.9/repository文件夹
六、Maven流水线
目的:拉取最新代码,将代码打包好,做成镜像,上传到docker中,启动容器后,外部可以访问。
1. 配置Maven环境变量
Jenkins首页点击Manage Jenkins
点击Configure System
在Global properties下Add三个环境变量
MAVEN HOME
/usr/local/maven/apache-maven-3.3.9
JAVA HOME
/usr/local/idk/jdk1.8.0 231
PATH+EXTRA
$MAVEN HOME/bin
2. 第一段流水线:Git拉去代码
我们在Build History里找到#1,在#1下拉框找到Replay
在Main Script中,用
stage('pull code'){ }
包裹原来的第二行,后Run
结果:
3. 第二段流水线:把下载的项目打包成.jar文件
先去终端运行
/etc/init.d/jenkins restart
类似第一条流水线,我们点击#2的Replay
点击Console Output
复制这部分代码**/var/lib/jenkins/workspace/demo0921**
将Main Script改成如下形式,/var/lib/jenkins/workspace/demo0921放在dir的’‘内,Run
node{
stage(‘compile’){
dir(’/var/lib/jenkins/workspace/demo0921’){
sh ‘mvn clean install’
}
}
}
检验:
cd /var/lib/jenkins/workspace/demo0921
ll
cd …
ll
四条语句分别执行
4. 第三条流水线:将.jar文件做成Docker镜像
cd demo0921
mvn clean install
ll
cd target
ll
java -jar 240919_DemoNginx-1.0-SNAPSHOT.jar
访问页面显示admin:8888即代表操作成功
执行如下命令
cd /var/lib/jenkins/workspace/demo0921
rm -rf target
/etc/init.d/jenkins restart
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
/etc/init.d/jenkins restart
Replay的Main Script中
checkout=0
node {
stage(‘pull code’){
git credentialsId: ‘0d34702d-9692-4d06-90f9-821e743c9bc7’, url: ‘https://gitee.com/quanmingzhe/240921maven.git’
}
stage(‘compile’){
dir(‘/var/lib/jenkins/workspace/demo0921’){
sh ‘mvn clean install’
}
}
stage(‘make docker container’){
dir(‘/var/lib/jenkins/workspace/demo0921/target’){
sh “echo FROM openjdk:8 > Dockerfile”
sh “echo ADD 240919_DemoNginx-1.0-SNAPSHOT.jar /app.jar >> Dockerfile”
sh “echo RUN bash -c '”‘touch /app.jar’“’ >> Dockerfile”
sh “echo ENTRYPOINT ['”‘java’“‘,’”‘-jar’“‘,’”‘/app.jar’“'] >> Dockerfile”
sh “echo RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime >> Dockerfile”
sh “docker build -t demo0921 .”
}
}
}
5. 第四段流水线:通过镜像创建容器并启动
checkout=0
node {stage('pull code'){git credentialsId: '0d34702d-9692-4d06-90f9-821e743c9bc7', url: 'https://gitee.com/quanmingzhe/240921maven.git'}stage('compile'){dir('/var/lib/jenkins/workspace/demo0921'){ sh 'mvn clean install'}}stage('make docker container'){dir('/var/lib/jenkins/workspace/demo0921/target'){sh "echo FROM openjdk:8 > Dockerfile"sh "echo ADD 240919_DemoNginx-1.0-SNAPSHOT.jar /app.jar >> Dockerfile"sh "echo RUN bash -c '\"'touch /app.jar'\"' >> Dockerfile"sh "echo ENTRYPOINT ['\"'java'\"','\"'-jar'\"','\"'/app.jar'\"'] >> Dockerfile"sh "echo RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime >> Dockerfile"sh "docker build -t demo0921 ." }}stage('start'){sh 'docker run --name d8 -p 8989:8888 -d dasf'}
}
6. 第五、六段流水线:删除已存在的容器和镜像
checkout=0
node {stage('pull code'){git credentialsId: '0d34702d-9692-4d06-90f9-821e743c9bc7', url: 'https://gitee.com/quanmingzhe/240921maven.git'}stage('compile'){dir('/var/lib/jenkins/workspace/dasf'){ sh 'mvn clean install'}}stage('remove docker container'){if(checkout==0){sh 'docker stop d8'sh 'docker rm d8'sh 'docker rmi dasf'}}stage('make docker container'){dir('/var/lib/jenkins/workspace/dasf/target'){sh "echo FROM openjdk:8 > Dockerfile"sh "echo ADD 240919_DemoNginx-1.0-SNAPSHOT.jar /app.jar >> Dockerfile"sh "echo RUN bash -c '\"'touch /app.jar'\"' >> Dockerfile"sh "echo ENTRYPOINT ['\"'java'\"','\"'-jar'\"','\"'/app.jar'\"'] >> Dockerfile"sh "echo RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime >> Dockerfile"sh "docker build -t dasf ." }}stage('start'){sh 'docker run --name d8 -p 8989:8888 -d dasf'}
}
总结
本文讲述了:
Jenkins:自动化构建、测试和部署软件项目
我还在回味大粪圆圆的滋味,让我想起了之前吃过的7坨爱因斯坦的,他的那个颜色非常鲜艳,应该是1001年2月30日他吃了蛋糕的缘故。