让我们聊一聊Jenkins的自动化部署

2017-07-27  本文已影响602人  郭之源

1.Jenkins简介

Jenkins是一个可扩展的持续集成引擎,是一个CI系统。主要用于:

  1. 持续、自动构建/测试软件项目
  2. 监控一些定时执行的任务

2.Jenkins的安装

对于初学者可以直接下载jenkins.war文件,Jenkins官网https://jenkins.io/download/:

Jenkins下载页面.png
下载到本地后可以直接运行: java -jar jenkins.war
注意:机器要求已经安装jdk,并配置环境变量!第一次启动的时候会给你一个密码,留意控制台输出!
还有一种安装方式就是将下载的war包文件部署到 servlet 容器,然后启动容器,在浏览器的URL地址栏中输入类似http://localhost:8080/这样的地址即可:
Jenkins首页.png

3.Jenkins配置

  1. 安装必要的插件
    找到【系统管理】-》【插件管理】-》【可安装插件】,搜索安装Maven集成插件Maven Integration plugin和SSH插件用于发送文件Publish Over SSH,以后用到其他插件可以自行安装。
  2. 配置全局工具(JDK、Git、Maven等)
    找到【系统管理】-》【Global Tool Configuration】:
全局工具配置.png

在这个页面你可以安装你是用到的工具,如JDK、Git、Maven等,它也支持自动安装,但不知道为什么我的自动安装未成功,所以选择了手动安装,然后指定了安装目录,配置了环境变量等。

  1. 系统配置
    这里可以配置Jenkins的主目录、工作空间主目录、构建记录根目录、Maven相关配置、publish over SSH相关配置等:


    系统配置.png

    注意配置SSH Server时候要先将远程服务器的公钥(id_rsa.pub)内容放到Jenkins服务器的authorized_keys中:


    ssh公钥.png
    到这里我们使用到的配置都Ok了,当然还有其他的好多配置项,如:Configure Global Security、管理用户等,如果有需要的话,也可以进行配置。

4.使用Jenkins部署jar包

  1. 首先创建一个git仓库,为了方便我就直接在git.oschina.net上创建了:https://git.oschina.net/watermin/jenkins-deploy (项目是公开的需要的同学可以直接看代码),git clone 到本地后,创建一个Maven项目,然后提交上去就行。
    注意:项目打包的时候用到了一个插件maven-assembly-plugin,可以将依赖的jar包都打包到lib下
  2. 在Jenkins管理页面【新建】项目


    image.png
  3. 配置:


    部署jar包的配置.png

    其中从上向下依次是:

cd /web/apps
dir=/web/apps/jenkins-jar-test
TIME=`date "+%Y%m%d%H%M%S"`
FILENAME=jenkins-jar-test.$TIME.tar.gz
if [ -e "$dir" ];then
    tar -zcf $FILENAME  jenkins-jar-test/
    mv $FILENAME  /web/bak
    rm $dir -rf
fi    
mv jenkins-jar/target/jenkins-jar-test-assembly.tar.gz  ./
rm -rf jenkins-jar
tar xf  jenkins-jar-test-assembly.tar.gz
sh jenkins-jar-test/startup.sh restart
  1. 测试
    到这里项目就配置完成了,然后【保存】,【立即构建】,查看控制台输出,如果顺利的话到此就实现了jar包的自动化部署,在浏览器输入:远程服务器ip:8081,查看项目有没有启动成功!
    访问项目页面.png

5.使用Jenkins部署war包

  1. 安装Tomcat
    如果打的是war的话,一般我们会选择部署到tomcat上,所以首先你要在远程机器上安装一个tomcat,具体安装步骤我就不絮叨了。

  2. 在本地的建立一个Maven项目
    打包成war包(悄悄的告诉你这里已经有了https://git.oschina.net/watermin/jenkins-deploy.git

  3. 新建项目
    同上

  4. 配置

    部署war包的配置.png
    其他的配置和上面部署jar包的配置一样,唯一不同的就是Post Steps中的Send files or execute commands over SSH的配置:
    Source files: Jenkins 机器上的war包
    Remote directory : 远程服务器上tomcat的ROOT路径
    Exec command :在远程机器上指向的Linux命令
DIR=/usr/local/server/jenkins-war-tomcat
WAR_NAME=jenkins-war-test.war
JENKINS_DIR=/root/.jenkins/workspace/jenkins-war/jenkins-war/target
TIME=`date "+%Y%m%d%H%M%S"`
ps -ef | grep ${DIR} | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
rm -rf work/*
pushd ${DIR}/webapps/ROOT/
[ -e ${WAR_NAME} ] && mv ${WAR_NAME} ../../bak/${TIME}-${WAR_NAME}
pushd jenkins-war/target/
pwd
mv  jenkins-war-test.war   ../../
pushd ${DIR}/webapps/ROOT/ 
rm -rf jenkins-war/
jar -xf ${WAR_NAME}
cd ${DIR}
./bin/startup.sh
  1. 测试,访问远程机器Ip:8082测试是否启动成功。

哈哈,到这里jar包、war包的在Jenkins上的配置已经全部完成了,同学你的成功了么,如果有问题欢迎骚扰,吃饭去了,see you !!

上一篇下一篇

猜你喜欢

热点阅读