jenkins

第1章Jenkins介绍

1.1背景介绍

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好的协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins自动化部署可以解决集成、测试、部署等重复性的工作(以前大多用Rsync+脚本手动实现),工具集成效率明显高于人工,并且持续集成可以更早的获取代码变更信息,从而个更早进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降。持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间。持续集成也意味着开发、集成、测试、部署得以持续。所以当配置完Jenkins持续集成、持续交付环境后,就可以把发布的任务交给集成服务器去处理了。使用Maven(Ant)等来实现java项目自动化构建发布部署。这些工具可以帮助在构建过程中实现自动化发布、回滚等动作。

1.2Jenkins简介

在这里插入图片描述
Jenkins是一个用Java编写的开源的持续集成工具。在于Oracle发生争执后,项目从Hudson项目中独立。官网:https://jenkins.io/。
Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(tomcat)。支持软件配置管理工具(SCM)工具(AccuRev SCM、CVS、Subversion、Git等)。可以执行基于ApacheAnt和Apache Maven的项目,以及任意shell脚本和Windows批处理命令。
Jenkins特点:

  • 易安装:官网下载jenkins.war,直接运行,无需额外安装,无需安装数据库。
  • 易配置:提供友好的GUI配置界面
  • 变更支持:jenkins能从代码仓库(SVN/Git)获取并产生代码更新列表,并输出到编译输出信息中。
  • 支持永久链接:用户是通过Web来访问Jenkins的,这些链接地址都是永久的,可以在各种文档中直接使用。
  • 集成E-Mail/RSS/M:当完成一次集成时,可以通过这些工具实时收取集成结果。
  • JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能。
  • 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成。
  • 文件指纹信息:Jenkins会保存构建集成所产生的jars文件,集成构建使用了哪个版。
  • 支持第三方插件:Jenkins支持第三方插件,这使得Jenkins功能变得越来越强大。

1.3Maven介绍

如果项目是java构建的,要进行jar包或是war包的构建,这个包的构建是通过调用Maven来实现的,其他种类的项目是不需要以来Maven的。
第2章Jenkins部署

2.1Jenkins安装方式

2.1.1war包两种方式

  • 先安装tomcat将jenkins.war 直接放到webapps目录下。
  • 通过java -jar jenkins.war --httpPort=8080命令直接运行。
    官方仓库:https://pkg.jenkins.io/redhat-stable/
    清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

2.1.2rpm方式

[

root@jenkins ~]# ls
anaconda-ks.cfg  jenkins-2.222-1.1.noarch.rpm   jdk-8u60-linux-x64.tar.gz
安装jdk环境
[root@jenkins ~]# tar xf jdk-8u60-linux-x64.tar.gz 
[root@jenkins ~]# ls
[root@jenkins ~]# mv jdk1.8.0_60/ /usr/local/java8
[root@jenkins ~]# vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/java8
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# java -version

安装jenkins

[root@jenkins ~]# rpm -ivh jenkins-2.222-1.1.noarch.rpm 
[root@jenkins ~]# /etc/init.d/jenkins start   //启动失败
[root@jenkins ~]# netstat  -lnpt | grep 8080  //8080端口未被占用,排除此原因
[root@jenkins ~]# vim /etc/init.d/jenkins   //查看是否正确加载java环境
在candidates下面添加:
/usr/local/java8/bin/java
/usr/local/java8/jre/bin/java
[root@jenkins ~]# /etc/init.d/jenkins star   //启动成功
[root@jenkins ~]# netstat  -lnpt | grep 8080

访问192.168.9.9:8080
在这里插入图片描述

去提示路径复制密码解锁,复制粘贴。

2.1.3Jenkins各文件介绍

/etc/init.d/jenkins:启动脚本
/etc/logrotate.d/jenkins:日志分割配置文件
/etc/sysconfig/jenkins:jenkins主配置文件
/usr/lib/jenkins:存放war包目录
/usr/lib/jenkins/jenkins.war:war包
/usr/sbin/rcjenkins:命令
/var/cache/jenkins:war包解压目录jenkins网页代码目录
/var/lib/jenins:jenkins工作目录
/var/log/jenkins:日志

2.1.4配置文件说明

[root@jenkins ~]# grep "^[a-Z]" /etc/sysconfig/jenkins

在这里插入图片描述

2.1.5插件源离线说明

因为使用国外源,所以出现离线状态。解决方法如下:
在这里插入图片描述
在这里插入图片描述

保存并完成,保存并完成,开始使用。
在这里插入图片描述

打开新的标签页输入网址:192.168.9.9:8080/pluginManager/advanced
在这里插入图片描述

替换成清华园地址提交尝试,看看/var/lib/jenkins下有没有出现update目录。
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
提交后发现没有出现。
在这里插入图片描述
在这里插入图片描述
把刚刚修改清华园地址的位置恢复成默认的,再点击check now,再查看/var/lib/jenkins是否出现update目录。 http://updates.jenkins.io/update-center.json
重新启动jenkins查看:/etc/init.d/jenkins restart
在这里插入图片描述
修改updates下面的default.json

[root@jenkins jenkins]# cd updates/
[root@jenkins updates]# ls
default.json  hudson.tasks.Maven.MavenInstaller
[root@jenkins updates]# sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json 
[root@jenkins updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json 
[root@jenkins updates]# /etc/init.d/jenkins restart

这样修改的目的是安装插件时候是从国内源上安装。

2.1.6安装必要插件

还是到checkou那个插件页面,搜索并安装插件。Plugin Over SSH、Maven Integration

在这里插入图片描述
在这里插入图片描述
安装不上的话可以删除/var/lib/jenkins/plugins下面的东西,把下载好的插件解压到这个目录。

第3章Jenkins简单使用

3.1用户密码更新

在这里插入图片描述在这里插入图片描述
在这里插入图片描述改就完事了。

3.2调整Jenkins并发执行量

用于提高执行效率。
Manage Jenkins >> Configure System >> Maven 项目配置

在这里插入图片描述

3.3配置邮件地址

Manage Jenkins >> Configure System >> Jenkins Location
在这里插入图片描述


在这里插入图片描述

第4章基于Jenkins打包并部署Tomcat环境

4.1传统网站部署流程

在这里插入图片描述

4.2目前流行部署流程

在这里插入图片描述

4.3架构

在这里插入图片描述

4.4项目环境

系统 IP 主机名 角色
centos7 192.168.9.8 git git服务器
centos7 192.168.9.9 jenkins jenkins服务器
centos7 192.168.9.10 tomcat web服务器

4.5git安装

git使用yum安装,自定义用户,su命令,达到安全可靠目的。
[root@git ~]# yum -y install git
[root@git ~]# useradd git
[root@git ~]# echo "123456" | passwd --stdin git   //修改密码
[root@git ~]# su - git
[git@git ~]$ mkdir probe.git
[git@git ~]$ cd probe.git/
[git@git probe.git]$ git --bare init   //初始化
[git@git probe.git]$ exit
[root@git ~]# git clone https://github.com/psi-probe/psi-probe   

在这里插入图片描述

[root@git ~]# git clone git@192.168.9.8:/home/git/probe.git
[root@git ~]# cp -rf  psi-probe/* probe/
[root@git ~]# cd probe/
[root@git probe]# git add *
[root@git probe]# git config --global user.name “hannibal”
[root@git probe]# git config --global user.email “zhaojiuxun1216@163.com”
[root@git probe]# git commit -m “all probe”
[root@git probe]# git push origin master

4.6Jenkins添加凭据

Manage Jenkins --> Manage Credentails
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样Jenkins服务器就知道了web的用户和密码。

4.7Tomcat添加Publish Over SSH主机

在web服务器上创建远程目录。
[root@web ~]# mkdir /data

在Jenkins首页点击Manage Jenkins --> Configure System --> Publish over SSH --> SSH Servers --> 增加 --> 添加SSH远程主机。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试成功之后保存。

4.8Jenkins上部署Maven、JDK、Git环境

4.8.1Jdk环境

之前已经安装过了,不再演示。
在这里插入图片描述

后来使用了以下这种方法。

export JAVA_HOME=/usr/local/java
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version

4.8.2安装maven

https://maven.apache.org/download.cgi
[root@jenkins ~]# tar xf apache-maven-3.6.3-bin.tar.gz
[root@jenkins ~]# mv apache-maven-3.6.3 /usr/local/maven3.6.3
maven会下载很多依赖的文件,所以修改国外源。
[root@jenkins ~]# vim /usr/local/maven3.6.3/conf/settings.xml
写在<mirrors>   </mirrors>里面,别搞重复了。


<mirror>
         <id>nexus-aliyun</id>
         <mirrorOf>central<mirrorOf>
         <name>Nexus aliyun</name>
         <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>  
//以下maven的不用做
[root@jenkins ~]# vim /etc/profile
#Maven
MAVEN_HOME=/usr/local/maven3.6.3/
PATH=/$PATH:/usr/local/maven3.6.3/bin
export MAVEN_HOME PATH
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# mvn -version

4.8.3 配置图形界面

Manage Jenkins --> Global Tool Configuration (找到JDK,新增,去掉勾选)
别名随便(JDK1.8),JAVA_HOME路径(/usr/local/java8),git名字就叫git,路径用which git查看一下。
在这里插入图片描述
找到maven设置
在这里插入图片描述
保存。

4.9设置Web服务器

web服务器上传tomcat和jdk包,并安装。

[root@web ~]# tar xf apache-tomcat-8.5.16.tar.gz
[root@web ~]# tar xf jdk-8u60-linux-x64.tar.gz
[root@web ~]# mv jdk1.8.0_60/ /usr/local/java8
[root@web ~]# vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/java8
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
[root@web ~]# source /etc/profile
[root@web ~]# java -version
[root@web ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8

生成密钥对

[root@web ~]# ssh-keygen
[root@web ~]# ssh-copy-id 192.168.9.9   //公钥发给jenkins

4.10新建Maven项目

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

点击确定
在这里插入图片描述

因为需要密钥对,所以报错了,因为jenkins使用的用户是jenkins,所以需要su到jenkins,再生成密钥对。
[

root@jenkins ~]# su -s /bin/bash jenkins
bash-4.2$ ssh-keygen 
bash-4.2$ ssh-copy-id git@192.168.9.8
bash-4.2$ exit
[root@jenkins ~]# yum -y install git

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

填写需要tomcat主机操作的命令。(将war包拷贝过去,并且重启tomcat)
在这里插入图片描述

点击保存,点击bulid now。
在这里插入图片描述

妈的有问题搞了好久,改了maven配置文件。vim /usr/local/maven-3.6.3/conf/settings.xml
就可以构建成功了。

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

<profile>     
    <id>JDK-1.8</id>       
    <activation>       
        <activeByDefault>true</activeByDefault>       
        <jdk>1.8</jdk>       
    </activation>       
    <properties>       
        <maven.compiler.source>1.8</maven.compiler.source>       
        <maven.compiler.target>1.8</maven.compiler.target>       
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>       
    </properties>       
</profile>

在这里插入图片描述
报错

mvn license:format
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值