Jenkins + Github + Tomcat

准备两台虚拟机:

一、部署jenkins服务器

[root@jenkins-server ~]# yum install -y git     #安装git客户端
[root@jenkins-server ~]# ssh-keygen
[root@jenkins-server ~]# ssh-copy-id -i root@192.168.19.129     #拷贝到后端java服务器
#上传jdk
[root@jenkins-server ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/

[root@jenkins-server ~]# cd /usr/local/

[root@jenkins-server local]# mv jdk1.8.0_191/ java
#安装tomcat
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz

[root@jenkins-server ~]# tar xzf apache-tomcat-8.5.42.tar.gz -C /usr/local/

[root@jenkins-server ~]# cd /usr/local/

[root@jenkins-server local]# mv apache-tomcat-8.5.42/ tomcat
#安装maven
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

[root@jenkins-server ~]# tar xzf apache-maven-3.5.4-bin.tar.gz -C /usr/local/java

[root@jenkins-server ~]# cd /usr/local/java

[root@jenkins-server java]# mv apache-maven-3.5.4/ maven
#设置变量
[root@jenkins-server ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/java/maven
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME

[root@jenkins-server ~]# source /etc/profile
#验证
[root@jenkins-server ~]# java -version 
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

[root@jenkins-server ~]# mvn -v 
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/java/maven
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

下载jenkins的安装包:
安装jenkins:2.196 ----通过官网直接下载war包。
官网:http://updates.jenkins-ci.org/download/war/

[root@jenkins-server ~]# wget http://updates.jenkins-ci.org/download/war/2.196/jenkins.war
部署jenkins

[root@jenkins-server ~]# cd /usr/local/tomcat/webapps/

[root@jenkins-server webapps]# rm -rf * 

[root@jenkins-server webapps]# cp /root/jenkins.war .

[root@jenkins-server webapps]# ../bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

二、访问192.168.19.131:8080/jenkins测试

image.png
  • 等待时间过长:
[root@jenkins-server ~]# vim .jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>
image.png
  • 查看密码
[root@jenkins-server ~]# cat /opt/jenkins/secrets/initialAdminPassword
b36b8b04c5b84e659701304dfe848999    ---复制这个密码粘贴到上面提示的空格里面。
image.png
  • 等待安装完成


    image.png
  • 创建管理员账户


    image.png

三、安装插件

安装插件:
所需的插件:
• Maven插件 Maven Integration plugin
• 发布插件 Deploy to container Plugin
需要安装插件如下:
=====================================================================================
安装插件Deploy to container ---支持自动化代码部署到tomcat容器
GIT pligin 可能已经安装
Maven Integration :jenkins利用Maven编译,打包所需插件
Publish Over SSH :通过ssh连接
ssh 插件
安装过程:
系统管理--->插件管理---->可选插件--->过滤Deploy to container---->勾选--->直接安装

也可将插件直接拷贝到/root/.jenkins/plugins

image.png
image.png
image.png

四、配置ssh

image.png
  • 配置邮箱(可选)


    image.png

    image.png

    image.png
  • 配置私钥

[root@jenkins-server ~]# cat .ssh/id_rsa
image.png

image.png

五、配置jdk,maven命令,全局配置

image.png

image.png

image.png
  • 然后点击保存

六、构建发布任务

image.png

image.png

image.png

image.png

七、调用maven命令

image.png

image.png

八、部署java服务器,做jenkins打包上线

[root@localhost ~]# mkdir -p /data/application

[root@localhost ~]# tar xzf jdk-8u211-linux-x64.tar.gz -C /usr/local/     #部署jdk

[root@localhost ~]# tar xzf apache-tomcat-8.5.45.tar.gz -C /data/application/     #部署tomcat

[root@localhost ~]# cd /usr/local/

[root@localhost local]# mv jdk1.8.0_211/ java

[root@localhost local]# cd /data/application/

[root@localhost application]# mv apache-tomcat-8.5.45/ tomcat

[root@localhost application]# vim /etc/profile     #配置变量
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/data/application/tomcat

[root@localhost application]# source /etc/profile

[root@localhost application]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

[root@localhost application]# cd tomcat/webapps/

[root@localhost webapps]# rm -rf *

[root@localhost webapps]# mkdir /opt/script     #创建脚本存放目录

[root@localhost webapps]# vim /opt/script/app-jenkins.sh 

[root@localhost webapps]# chmod +x /opt/script/app-jenkins.sh     #执行权限

[root@localhost webapps]# cd /opt/script

[root@localhost script]# cat app-jenkins.sh      #脚本内容
#!/usr/bin/bash
#本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。
#================
#Defining variables
export JAVA_HOME=/usr/local/java
webapp_path="/data/application/tomcat/webapps"
tomcat_run="/data/application/tomcat/bin"
updata_path="/data/update/`date +%F-%T`"
backup_path="/data/backup/`date +%F-%T`"
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
files_dir="easy-springmvc-maven"
files="easy-springmvc-maven.war"
job_path="/root/upload"

#Preparation environment
echo "Creating related directory"
mkdir -p $updata_path
mkdir -p $backup_path

echo "Move the uploaded war package to the update directory"
mv $job_path/$files $updata_path

echo "========================================================="
cd /opt
echo "Backing up java project"
if [ -f $webapp_path/$files ];then
    tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
    if [ $? -ne 0 ];then
        echo "打包失败,自动退出"
        exit 1
    else
        echo "Checking if tomcat is started"
        if [ -n "$tomcat_pid" ];then
            kill -9 $tomcat_pid
            if [ $? -ne 0 ];then
                echo "tomcat关闭失败,将会自动退出"
                exit 2
            fi
        fi
        cd $webapp_path
        rm -rf $files && rm -rf $files_dir
        cp $updata_path/$files $webapp_path
        cd /opt
        $tomcat_run/startup.sh
        sleep 5
        echo "显示tomcat的pid"
        echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
        echo "tomcat startup"
        echo "请手动查看tomcat日志。脚本将会自动退出"
    fi
else
    echo "Checking if tomcat is started"
        if [ -n "$tomcat_pid" ];then
            kill -9 $tomcat_pid
                if [ $? -ne 0 ];then
                    echo "tomcat关闭失败,将会自动退出"
                        exit 2
                fi
        fi
    cp $updata_path/$files $webapp_path
    $tomcat_run/startup.sh
        sleep 5
        echo "显示tomcat的pid"
        echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
        echo "tomcat startup"
        echo "请手动查看tomcat日志。脚本将会自动退出"
fi

九、回到jenkins页面构建任务

image.png
image.png

十、登陆java-server查看

[root@java-server ~]# cd /data/application/tomcat/webapps/

[root@java-server webapps]# ls
easy-springmvc-maven  easy-springmvc-maven.war
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容