自学内容网 自学内容网

Jenkins学习

系列文章目录

第一章 基础知识、数据类型学习
第二章 万年历项目
第三章 代码逻辑训练习题
第四章 方法、数组学习
第五章 图书管理系统项目
第六章 面向对象编程:封装、继承、多态学习
第七章 封装继承多态习题
第八章 常用类、包装类、异常处理机制学习
第九章 集合学习
第十章 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
在下攸攸太上,我在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日他吃了蛋糕的缘故。


原文地址:https://blog.csdn.net/howwickhappy/article/details/142411510

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!