自动化部署jenkins+Linux+tomcat+git+maven+springboot2

一.项目简介

使用Jenkins实现自动持续集成部署springboot2项目到Tomcat。
Linux系统为centos7,并且需要有能被外网访问的IP(建议使用云服务器)和能够上网
代码管理工具为git

二.安装必要的软件

1.安装Tomcat
打开Tomcat的官网下载压缩包
这里写图片描述
使用远程工具拷贝到Linux系统的/opt目录下
这里写图片描述
解压压缩包,剪切到/opt/local/tomcat8目录下

[root@instance-uhumcptp opt]# tar -zxvf apache-tomcat-8.0.53.tar.gz
[root@instance-uhumcptp opt]# mv apache-tomcat-8.0.53 /usr/local/tomcat8
[root@instance-uhumcptp opt]# cd /usr/local/tomcat8/
[root@instance-uhumcptp tomcat8]# pwd
/usr/local/tomcat8

2.下载Jenkins
打开Jenkins的官网,点击Download,点击Generic Java package (.war)
这里写图片描述
拷贝jenkins.war到Linux系统下的/usr/local/tomcat8/webapps
这里写图片描述
3.下载和安装git
打开git的下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/
我下载的是:git-2.18.0.tar.gz
通过远程工具拷贝到Linux系统的/opt目录下
这里写图片描述

安装编译git 时需要的包

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install -y gcc perl-ExtUtils-MakeMaker

删除已有的git

yum remove git

解压文件,并移动到/usr/src目录下

[root@instance-uhumcptp src]# tar -zxvf git-2.18.0.tar.gz 
[root@instance-uhumcptp opt]# mv git-2.18.0 /usr/src
[root@instance-uhumcptp opt]# cd /usr/src
[root@instance-uhumcptp src]# ll
total 28
drwxr-xr-x.  2 root root  4096 Apr 11 12:59 debug
drwxrwxr-x  24 root root 20480 Jun 22 01:18 git-2.18.0
drwxr-xr-x.  2 root root  4096 Apr 11 12:59 kernels

编译安装

[root@instance-uhumcptp git-2.18.0]# pwd
/usr/src/git-2.18.0
[root@instance-uhumcptp git-2.18.0]# make prefix=/usr/local/git all
[root@instance-uhumcptp git-2.18.0]# make prefix=/usr/local/git install

配置环境变量
在profile文件添加一行:export PATH=$PATH:/usr/local/git/bin

[root@instance-uhumcptp git-2.18.0]# vim /etc/profile

这里写图片描述

使刚添加的环境配置生效

[root@instance-uhumcptp git-2.18.0]# source /etc/profile

查看版本号

扫描二维码关注公众号,回复: 2367710 查看本文章
[root@instance-uhumcptp ~]# git --version

这里写图片描述

4.安装jdk
打开官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
拷贝到Linux系统下的/opt目录
这里写图片描述

解压文件

[root@instance-uhumcptp opt]# tar -zxvf jdk-8u181-linux-x64.tar.gz
[root@instance-uhumcptp opt]# mv jdk1.8.0_181 /usr/local/jdk8
[root@instance-uhumcptp opt]# vim /etc/profile

配置环境变量:在 /etc/profile文件中添加

JAVA_HOME=/usr/local/jdk8
PATH=$PATH:/usr/local/git/bin:$JAVA_HOME/bin
export JAVA_HOME PATH

使配置的环境变量生效

[root@instance-uhumcptp opt]# source /etc/profile

测试jdk是否安装成功

[root@instance-uhumcptp opt]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

5.安装maven
打开maven的下载地址:http://maven.apache.org/download.cgi
这里写图片描述

解压文件

[root@instance-uhumcptp conf]# tar -zxvf apache-maven-3.5.4-bin.tar.gz
[root@instance-uhumcptp conf]# mv apache-maven-3.5.4 /usr/local/maven3

配置环境变量

[root@instance-uhumcptp conf]# vim /etc/profile

添加如下信息(包括前面已经添加的环境变量)

JAVA_HOME=/usr/local/jdk8
MAVEN_HOME=/usr/local/maven3
PATH=$PATH:/usr/local/git/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin
export JAVA_HOME MAVEN_HOME  PATH

使环境变量生效

[root@instance-uhumcptp conf]# source /etc/profile

测试maven是否安装成功

[root@instance-uhumcptp conf]# mvn -version

这里写图片描述

三.开始配置Jenkins的自动化部署

1.设置防火墙,允许8080端口被外网访问(因为我使用的是百度云,需要在百度云管理中心配置)
查看已经开放的端口

firewall-cmd --list-ports

开启8080端口
命令含义:

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

firewall-cmd --zone=public --add-port=8080/tcp --permanent

重启防火墙

firewall-cmd --reload

2.启动Tomcat服务器

[root@instance-uhumcptp bin]# cd /usr/local/tomcat8/bin/

3.用浏览器访问服务器地址
http://你的IP:8080/jenkins
这里写图片描述

4.输入管理员密码
密码位置

[root@instance-uhumcptp bin]# cat /root/.jenkins/secrets/initialAdminPassword 
86ed74608ff04be7b0ec1442d88eb106

我本地的密码为:86ed74608ff04be7b0ec1442d88eb106

5.点击安装推荐的插件
这里写图片描述

这里写图片描述

点击使用admin账户继续
这里写图片描述

点击Save and Finish
这里写图片描述

6.系统初始化配置

  • 全局安全配置,点击保存退出
    这里写图片描述

这里写图片描述

这里写图片描述

  • 全局工具配置
    这里写图片描述

配置maven的配置文件
这里写图片描述

配置jdk
这里写图片描述

配置git
这里写图片描述

配置maven,前面是配置maven的配置文件,这次是配置maven的安装目录
这里写图片描述

  • 插件配置
    这里写图片描述

这里写图片描述

7.创建任务
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

在git网站上配置项目的WebHooks
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

现在,我们每次git push代码后,Jenkins都会进行自动部署。

四.tomcat服务器配置账号

配置文件位置:/usr/local/tomcat8/conf/tomcat-users.xml,配置完后重启Tomcat服务器

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" password="123456"
roles="manager-gui,manager-script,manager-jmx,manager-status" />

五.运行的springboot2项目是打包成war包,通过外置Tomcat服务器进行访问

  • pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zkane</groupId>
    <artifactId>jenkins-demo</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <name>jenkins-demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 移除嵌入式tomcat插件 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>
  • 在启动类同级目录下创建ServletInitializer.java
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(JenkinsDemoApplication.class);
    }

}
  • 在控制台输入命令:mvn package,即可在target目录下生成项目的war包

猜你喜欢

转载自blog.csdn.net/qq_37170583/article/details/81128886