Jenkins是自动化部署的神器,今天就讲讲怎么使用Jenkins部署SpringBoot项目。

一、环境说明

JDK1.8,MAVEN3.5,CentOS7,Jenkins:2.178

一、Linux下安装JDK

1、登录Oracle官网下载Linux环境下的jdk1.8的压缩包,jdk-8u211-linux-x64.tar.gz

2、解压,tar vxf jdk-8u211-linux-x64.tar.gz

3、配置环境变量,vim /etc/profile,在最后加上

export JAVA_HOME=/usr/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

4、修改完成之后,使其生效,source /etc/profile

5、输入java -version 返回版本信息则安装正常。

二、Linux下安装MAVEN

1、登录Apache官网下载maven压缩包,apache-maven-3.5.4.tar.gz

2、解压,tar vxf apache-maven-3.5.4.tar.gz

3、配置环境变量,vim /etc/profile,在最后加上

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=${PATH}:${MAVEN_HOME}/bin

4、修改完成之后,使其生效,source /etc/profile

5、输入mvn -version 返回版本信息则安装正常。

三、配置防火墙

关闭防火墙:systemctl stop firewalld

查看防火墙状态:systemctl status firewalld.service

四、Jenkins安装

 Jenkins安装方式有很多,但是推荐使用的是用yum安装

1、下载Jenkins

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

yum -y install jenkins

2、修改jenkins端口

       jenkins默认的运行端口是8080,但是如果这个端口本地已经被占用了,得修改一下jenkins的配置文件,文件的位置在/etc/sysconfig/jenkins。我本地的8080端口已经被占用,我就修改成了8889。

3、启动jenkins并设置为开机自启

systemctl start jenkins,启动jenkins

systemctl enable jenkins,设置开机自启

systemctl status jenkins,查看状态,处于running,代表已经启动了

注意:如果你是自己下载jdk的压缩包解压的而不是用yum安装的,启动会报错,可以使用systemctl status jenkins看报错信息,因为我们是用yum安装的jenkins,其默认也是是用默认的yum方式安装的jdk,因此需要修改/etc/init.d/jenkins,在这里面加上你自己安装的jdk的目录就行了。

可以看到启动信息中提示了,没有/usr/bin/java目录,这是使用yum默认安装的jdk的位置

修改配置文件,vim /etc/init.d/jenkins,在配置文件中加上你自己自定义安装的jdk的目录:

保存以后再运行systemctl daemon-reload命令即可重启成功。

 

 

五、Jenkins插件的安装和配置

1、安装成功以后,浏览器访问你的ip+端口,我的是192.168.0.75:8889

        第一次启动jenkins,它会自动生成一个密码,它会将这个密码生成放到一个固定的地方,浏览器访问的时候会告诉你该密码的位置,/var/lib/jenkins/secrets/initialAdminPassword,去找到这个密码,cat /var/lib/jenkins/secrets/initialAdminPassword,复制过来。

2、等待一会以后会出现以下的页面,选择安装插件,选择第一个

3、下面就是等待插件安装成功

注:插件一次可能不会完全安装成功,可以点击Retry再次安装。直到全部安装成功 

4、配置用户名密码,插件安装成功以后让你创建一个管理员用户,也可以点击右下角的使用admin账号继续,看个人喜好

5、实例配置,这一步不需要修改东西,点击保存并完成

 6、点击开始使用Jenkins

7、登录成功以后的页面: 

8、若想修改管理员的密码或者新增一个用户,则点击Manage Jenkins--》下拉找到Manage Users,点击进去

 

 

2、全局工具配置,还是点击系统管理--》Global Tool Configuration

       2.1 配置jdk,点击新增JDK

默认是你选择jdk版本,然后jenkins从对应的网站下载,我们已经安装过了,不需要自动安装了,把自动安装勾选掉,就会出现让你配置你已经安装的jdk的路径了。 

 

    2.2 下拉找到maven,同理配置maven

    2.3、点击保存,就配置好了jdk和maven 

3、插件安装,默认已经安装了足够用的插件,大部分不需要我们自己安装了,但是还得安装Maven Integration,publish over SSH。

      点击Manage Jenkins--》Manage Plugins--》Available,勾选需要安装的插件,点击直接安装或者下载重启后安装

         

 

4、配置SSH

        如果你jenkins和要部署的项目放在一台服务器上,你可以不用配置SSH,因为这个是远程部署用的,就是你jenkins和你的应用程序不在一个服务,你要跨服务器操作用的。但是最好还是配置一下,万一以后其他的项目在另一台服务器,到时候还得配置,太麻烦。

       配置SSH有两种方式,一种是使用密钥,一种是使用账号密码,使用密钥的方式太麻烦了,需要在服务器生成密钥,然后配置,而使用账号密码的方式只需要在jenkins控制后台进行配置就好了,因此我们选用第二种方式配置。

       点击系统管理--》Configure System

六、部署项目

1、选择创建一个新任务,然后输入项目名,选择构建maven项目,点击确定

2、勾选Discard old builds(丢弃旧的构建),选择是否备份被替换的旧包。我这里选择备份最近的5个

3、源码管理,选择svn,然后输入url,再点击添加,输入svn的账号密码

 例如:SVN 地址:http://192.168.0.xx/svn/xxx

4、构建触发器,无需更改

5、构建环境,勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来

 6、Build,输入打包前的 mvn 命令,如:clean install -Dmaven.test.skip=true -Ptest,意思是:排除测试的包内容,使用后缀为 test 的配置文件。

 7、Post Steps,选择Run only if build succeeds

       然后点击Add post-build step,如果你的应用程序服务器和jenkins在一个服务器上,你可以选择Execute sell,执行shell命令,添加shell命令,例如将打好的war包丢到tomcat的webapps目录下,然后启动tomcat,或者直接用java -jar +jar包,直接启动jar包。因为我的jenkins和应用程序不在同一个服务器上,我这里选择Send files or execute commands over SSH,用ssh登录应用程序的服务器,然后执行命令或者脚本。

       Jenkins是将svn或者git上的源码下载下来,自动下载到你jenkins安装目录下的workspace下(使用yum安装的目录是/var/lib/jenkins/workspace),同时会用maven将代码进行打包,放在下载项目的target文件下。然后会根据配置的应用程序服务器上的位置(下下图中的Remote directory),将生成的jar包或者war包从jenkins的服务器拷贝到应用程序的服务器对应的文件夹中。然后启动相应的脚本或者命令运行这个项目。

8、点击保存即可

9、部署项目

等执行完毕就可以访问了。

注意:

       若jenkins和项目是放在同一台服务器上的,如果是jar包,可以在上面步骤7选择选择shell,然后执行shell命令,例如java -jar *.jar。如果是war包,可以将启动停止tomcat的命令封装成一个脚本,放在服务器上,然后用shell启动即可。但是这里有个问题,jenkins本身的工作是构建项目,而不是部署项目,所以在执行完打包的工作以后并不会执行启动tomcat的start.sh命令,会把子进程都杀死,因此可以在脚本上加BUILD_ID=DONTKILLME,网上有的人说不能用,有的人说能用,但是我的能用。

       若jenkins和项目不是放在同一台服务器上的,那么步骤7就得选择ssh的方式了,我的项目就是不放在一个服务器上的。还是那样,如果是jar包,可以直接写启动命令。如果是war包,需要tomcat启动,最好写一个脚本,放在项目的那个服务器上,通过ssh进行远程启动这个脚本,但是脚本中要记得加 BUILD_ID=DONTKILLME。

若jenkins执行脚本提示没有权限,则在/etc/sudoers.d/下创建一个jenkins文件,然后在文件中加上如下:

Defaults:jenkins !requiretty

jenkins ALL=(ALL) NOPASSWD: ALL

然后再在jenkins的启动脚本中加上:sudo 即可

Logo

更多推荐