准备两台虚拟机:
- git-server ----https://github.com/bingyue/easy-springmvc-maven
- jenkins-server ---192.168.19.131
- java-server -----192.168.19.129
一、部署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.pngimage.pngimage.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