热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jenkins从远程地址拉取项目自动部署到指定远程服务器

2017年11月02日15:05:28阅读数:7620更多个人分类:jenkins转载自:http:blog.csdn.netxbyn

 

2017年11月02日 15:05:28 阅读数:7620更多

个人分类: jenkins


转载自:http://blog.csdn.net/xbynet/article/details/52779314


 


基本

版本JenKins:2.19.1, Maven:3.1

环境要求:


  • Java 7

  • 256MB free memory

  • 1GB+ free disk space

Jenkins官网: https://jenkins.io/index.html

官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Home

jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

 

网上对于Jenkins1.x的资料较多,但是对于Jenkins2.x的资料较少,而这两个版本之间变化还是很大的。

 

 

下载后是一个war包(也可以选择windows installer包,最新版本目前没有提供)

将war包放进tomcat即可。

 


初始化配置

访问,如:127.0.0.1:8088/Jenkins

第一次要求输入密码,初始密码在${USER_HOME}\.jenkins\secrets\initialAdminPassword文件中查看。然后需要等到十来分钟,

等Jenkins初始化结束进入下一步。

选择安装建议的插件。接下来就是安装基本的插件(由于网速与服务器原因,比较慢。要等上几十分钟到几个小时)

这些推荐的插件,目前我们关心的是Subversion Plugin-in ,SSH Slaves Plugin。

 

可供选择的jenkins2 插件镜像列表:

Jenkins 所有镜像列表: http://mirrors.jenkins-ci.org/status.html

比如日本的镜像: http://mirror.esuni.jp/jenkins/, http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/, http://ftp.tsukuba.wide.ad.jp/software/jenkins/

德国的镜像: http://jenkins.mirror.isppower.de/ , http://mirror.yandex.ru/mirrors/jenkins/

官方的镜像: http://mirrors.jenkins-ci.org/, http://archives.jenkins-ci.org/

 

然后会提示设置管理员用户和密码,如下:

 

进入jenkins

经过以上的步骤jenkins已经安装完成。


JDK及Maven

在部署你的项目之前你需要jdk,maven的信息告知Jenkins。


  1. 点击系统管理->Global Tool Configuration:

jdk的JAVA_HOME必须和你环境变量里的jdk保持一致。

 

Maven:


创建一个新任务

 

之后进入任务配置界面:

配置一下工作空间

问题:在这里会遇到不支持Repository URL中含中文的情形:这里我们需要配置Jenkins所在的tomcat的Server.xml文件,修改:加上:URIEncoding="UTF-8"

cOnnectionTimeout="20000"

redirectPort="8443" URIEncoding="UTF-8"/>

保存重启Jenkins所在tomcat即可解决,选择所配置的用户,上面的红色错误也不会出现了。

 

接下来就是构建


构建配置

maven version : 选之前录入的maven,pom选pom文件所在的相对位置(此处是相对svn目录的位置)。

点击save后,点击立即构建,就可以构建了,可以在你的工作空间中发现你想要的东西了(war包)。

 

如果出现下面的问题:

方式一:这个问题只需要修改你的pom.xml即可。 加入install

方式二:当然也可以这样配置:

 


定时构建配置

规则:

MINUTE    Minutes within the hour (0–59)

HOUR    The hour of the day (0–23)

DOM    The day of the month (1–31)

MONTH    The month (1–12)

DOW    The day of the week (0–7) where 0 and 7 are Sunday.

 

指定顺序为MINUTE HOUR DOM MONTH DOW

在某个域指定多个值的规则是:


  • * specifies all valid values
  • M-N specifies a range of values
  • M-N/X or */X steps by intervals of X through the specified range or whole valid range
  • A,B,...,Z enumerates multiple values

如果要定期执行任务,必须提供H (for "hash")标识。

比如0 0 * * *会在同一时间执行所有任务,而使用H H * * *也会在每天执行一次任务,但是并不是同一时间,这样就可以节省很多资源。

H还可以用于范围:H H(0-7) * * * 标识在每天12:00-7:59之间的某个时间执行任务。

 H * * * * 代表每个小时执行一次

H/15 * * * *每15分钟执行一次。

 


  1. H(0-29)/10 * * * * every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)

  2.  

 

 


  1. # once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday.

  2.  

 

 


  1. 45 9-16/2 * * 1-5

  2.  

 

 


  1. # once in every two hours slot between 9 AM and 5 PM every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)

  2.  

 

 


  1. H H(9-16)/2 * * 1-5

  2.  

 

 


  1. # once a day on the 1st and 15th of every month except December

  2.  

 

 


  1. H H 1,15 1-11 *

  2.  

 

 

 


自动部署


自动部署到tomcat

自动部署需要一个容器,那Jenkins是怎么知道你的容器的呢?容器插件

首页-》系统管理-》管理插件

搜索deploy,很快就会找到这个deploy to container plugin,安装完记得重启。

这个由于网络原因下载会失败,这个时候需要设置镜像站点:

系统设置-》插件-》高级-》Update Site:

默认为: http://updates.jenkins-ci.org/update-center.json

我们改为一个日本的镜像: http://mirror.esuni.jp/jenkins/updates/update-center.json

 

接着选你的项目-》配置

构建后操作


  • WAR/EAR files:是相对于你前面配置的工作空间的。

  • Context path:是你容器部署的目录,如果是tomcat,那么在webapps下,如果你不想要项目名称的话选"\",填写"ROOT"是不可以的。

  • Containers: tomcat7。当然你要有manager用户信息。在tomcat目录下的conf目录,tomcat-users.xml修改如下:

保存文件。同时保存Jenkins。

先启动你的tomcat,再次点击立即构建。

如上,证明你成功了!打开浏览器访问下工程确认一下。 


自动部署到Weblogic

首先安装Deploy WebLogic Plugin插件。安装好之后,点击

系统配置-全局配置,滑到WebLogic Deployment Plugin出进行配置

其中additional classpath写上weblogic library path :


  • for WLS 8.X /pathtojar/weblogic.jar

  • for WLS 10.3 /pathtojar/wlfullclient.jar

  • for WLS 12.1 /pathtojar/wlthint3client.jar.

wlfullclient.jar生成方法:(http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html)

进入weblogic的安装目录例如C:\Oracle\Middleware\wlserver_10.3\server\lib,

运行 java -jar wljarbuilder.jar就能生成wlfullclient.jar文件

 

如果存在堆溢出,可以把-Xmx调大一点。

这个Congiguration File的写法如下

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://org.jenkinsci.plugins/WeblogicDeploymentPlugin plugin-configuration.xsd"> 

    

        my_managed_server1

        _weblogic.admin.server.host_

        

_weblogic.admin.server.port_

        _weblogic.admin.server.login_

        

_weblogic.admin.server.password_

        BY_KEY

        P:\Documents\perso\dev\wls-deploy-plugin\wls_userConfig.properties

        P:\Documents\perso\dev\wls-deploy-plugin\wls_userConfig.key

    

    

        my_managed_server2

        _weblogic.admin2.server.host_

        

_weblogic.admin2.server.port_

        _weblogic.admin2.server.login_

        

_weblogic.admin2.server.password_

        BY_LOGIN

    

    

        my_managed_server3

        _weblogic.admin.server.host_

        

_weblogic.admin.server.port_

        _weblogic.admin.server.login_

        

_weblogic.admin.server.password_

        

        _weblogic.remote.host_

        _weblogic.remote.user_

        _weblogic.remote.password_

        /remote/path/used/to/transfer/libraries

    

最后一个配置FTP其实是用来部署依赖库,而不是整个项目的。

注意:每次修改default.xml文件后都需要重新在系统设置中apply-save才能生效。

认证模式authmode


  • BY_KEY : uses a keystore file and a config file

  • BY_LOGIN : uses a login/password (this is the default authentication mode).

     

接下来配置任务的weblogic部分:增加一个构建后操作:

需要配置的项主要有:


  • Task Name: 用于部署的名字;Eg. Webapp WL Deployment

  • Environment: 指定你要部署到的环境。(前后default.xml配好,这里选择即可)确保使用的是AdminServer端口(默认7001)而不是Managed Server端口

  • Name: weblogic的应用名,必须事先存在。

  • Base directory where the resource to deploy can be found:比如E:\jenkins-work\target\(前前面指定的工作空间下的target\下)

  • Built resource to deploy: 分发包的名称,可以使用正则表达式标识。比如test.war,应该写成test\.war

  • Targets: The name of the managed server you want to deploy the webapp to默认为AdminServer,多个以逗号(,)分隔。

  • Weblogic libraries: 分发包是否以依赖库的形式进行部署。一般不需要勾选

  • Fail build if deployment fails:部署失败是是否显示构建失败,一般需要勾选。

其中default.xml配置, Environment,targets参数对应于weblogic domain安装配置时的如下:

配置示例:

高级配置:

详细参考:https://wiki.jenkins-ci.org/display/JENKINS/WebLogic+Deployer+Plugin

https://www.zybuluo.com/kevinZheng/note/359003

比如:weblogic.Deployer部署web应用

先undeploy

"D:\Program Files\Java\jdk1.8.0_101\jre\bin/java" -Xms256M -Xmx1024M -cp E:\jenkins-tomcat7\wlfullclient.jar weblogic.Deployer -debug -remote -verbose -noexit -name fxglxt -targets AdminServer -adminurl t3://localhost:7001 -user weblogic -password 12345678 –undeploy

再deploy

"D:\Program Files\Java\jdk1.8.0_101\jre\bin/java" -Xms256M -Xmx1024M -cp E:\jenkins-tomcat7\wlfullclient.jar weblogic.Deployer -debug -stage -remote -verbose -upload -name fxglxt -source E:\jenkins-work\target\fxglxt.war -targets AdminServer -adminurl t3://localhost:7001 -user weblogic -password 12345678 –deploy

当然你还可以使用-redeploy来结合两个步骤

"D:\Program Files\Java\jdk1.8.0_101\jre\bin/java" -Xms256M -Xmx1024M -cp E:\jenkins-tomcat7\wlfullclient.jar weblogic.Deployer -debug -stage -remote -verbose -upload -name fxglxt -source E:\jenkins-work\target\fxglxt.war -targets AdminServer -adminurl t3://localhost:7001 -user weblogic -password 12345678 -redeploy

命令说明:

1. -Xms256M -Xmx256M 用来防止内存溢出,

2. wlfullclient.jar 里提供了weblogic.Deployer 命令用来远程发布项目war包,所以 需要-cp指定jar包路径 来启动命令 , 根据不同weblogic版本,该文件不同。

3. -verbose 指定后面的参数,

3. -upload 远程发布需要上传文件,

4. -name 发布项目名称

5. -targets 目标服务,

6. -adminurl 指定连接 weblogic 的协议 ip 和端口

7. -redploy 重新发布的 意思

8. -source 本地需要上传war包路径


日志查看

点击构建按钮后,不要多次点击,此时可以查看左下角执行状态:

 

 

查看Weblogic专有日志:

 

注意设置远程服务器tomcat的密码  在tomcat-users.xml中设置一下代码


参考:

http://www.itdadao.com/articles/c15a338614p0.html

https://www.oschina.net/question/912538_235734?fromerr=T2zy6I7r

http://www.cnblogs.com/itech/p/5610634.html

https://wiki.jenkins-ci.org/display/JENKINS/Home

http://blog.csdn.net/thekenofdis/article/details/51316787

https://wiki.jenkins-ci.org/display/JENKINS/WebLogic+Deployer+Plugin

http://stackoverflow.com/questions/16478705/deploy-to-weblogic-using-maven-and-jenkins

https://www.zybuluo.com/kevinZheng/note/359003


推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Maven入门、什么是Maven、如何使用Maven、Maven的项目结构、简单的Mavenjava项目、Maven常用命令、Maven项目之间的引用、Maven依赖的传递、可选、排除day01
    目录第一节Maven入门1.1什么是Maven1.2如何使用Maven第一步:下载Maven第二步:配置Maven的环境变量第三步:了解什 ... [详细]
  • Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译、部署等。将jenkins项目 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • Java源代码安全审计(二):使用Fortify-sca工具进行maven项目安全审计
    本文介绍了使用Fortify-sca工具对maven项目进行安全审计的过程。作者通过对Fortify的研究和实践,记录了解决问题的学习过程。文章详细介绍了maven项目的处理流程,包括clean、build、Analyze和Report。在安装mvn后,作者遇到了一些错误,并通过Google和Stack Overflow等资源找到了解决方法。作者分享了将一段代码添加到pom.xml中的经验,并成功进行了mvn install。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • SVN安装配置和使用
    简介:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS ... [详细]
  • IamsettingupApacheserverwithTortoiseSVNforalocalsourcecoderepository.Ihaveobservedt ... [详细]
author-avatar
手机用户2502881923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有