当前位置:首页 > CN2资讯 > 正文内容

jenkins 连接windows服务器 jenkins发布到远程服务器

2天前CN2资讯


jenkins作为持续集成的利器,在很多公司都会使用,他可以很方便集成其他的工具,提供对项目代码管理,代码review,打包,发布一站式服务。jenkins使用java语言写的,安装的前提是需要安装jdk,既可以在直接通过java -jar jenkins.war运行,也可以将它放到tomcat的webapps目录下,随着tomcat启动而启动。

这里要进行的试验是利用jenkins持续集成将git远程代码拉取到jenkins目录下,然后利用maven对项目进行构建,然后将构建的jar包,发布到远程服务器上,并运行起来。

这里对试验资源的规划:两台虚拟机,一台作为jenkins持续集成的机器server,另一台作为远程发布java项目的机器node01。他们都需要安装jdk.

一、开始安装

server上需要安装的相关程序:

1、jdk安装,略过。

2、jenkins的安装,这里我依赖于一个tomcat8,将下载的jenkins.war包放入tomcat/webapps目录下,启动tomcat来启动jenkins。

  a)tomcat启动之后,会启动jenkins,jenkins项目启动之后,会在/root目录下生成.jenkins目录,这里存放jenkins插件,配置,登录密码,项目空间等,如下图所示:

密码在secrets/initialAdminPassword中。



  b)jenkins启动之后,访问地址为http://192.168.42.128:8080/jenkins,登录用户名和密码:admin/d2a9c843d2114f109d0572ce9ebf27fa



  c)jenkins只是一个管理工具,他需要集成其他工具才能进行后续代码打包发布。

3、git安装,centos下,可以直接用yum来安装,装完即可使用git命令,这里我们只需要git作为客户端命令来使用。

yum install git

查看git版本


4、maven安装,上apache官网,找到maven,下载解压缩,设置环境变量即可使用。



node01机器:

jdk安装,略过。

二、配置

git,maven安装完成,就可以开始着手构建项目了,这里需要将系统的git,maven集成到jenkins,所以,需要安装对应的插件。

插件安装和配置,左侧菜单中依次选择系统管理->插件管理,选择可选插件tab页,可以搜索以下插件:

1)maven integration plugin //该插件安装了,才能创建maven项目。

2)git plugin                             //从远程拉取代码

3)deploy to container plugin //发布

4)publish over ssh                //ssh远程登录



选择了插件,可以直接安装,该过程会等待,不是立即就可以完成的,视网络情况而定。

下面就开始进行配置。

1、系统设置,这里需要设置远程机器node01的key,name,hostname,username。

先在远程机器node01上通过ssh-keygen命令生成无密码登录的秘钥。然后将id_rsa的内容粘贴到publish over ssh部分的key文本框中。



然后填写node01机器名称,ip,登录名,默认root.



2、系统工具配置,依次选择系统管理->Global Tool Configuration

配置jdk安装路径,git可执行路径(默认不用配置git),maven安装路径,并且都将自动安装选项取消。



下面真正的从创建项目到构建发布,还需要一些配置。

三、构建项目并发布

1、新建任务,maven项目webapp;



接着配置源码管理,这里需要配置一个远程gitserver上的项目仓库地址,可以使github,也可以是公司内部的git服务器上的项目仓库地址。



2、配置构建策略;

这里就是构建成功之后要做的事情,比如是要将打包之后的jar通过ssh登录远程机器的方式部署到远程服务器,并执行服务器上的脚本deploy.sh来启动服务。



3、开始构建。



点击立即构建之后,可以在左侧Build History看到一个正在构建的记录,还有进度条,这里可以通过查看console output,看构建输出日志



构建日志:



构建成功:



远程发布并启动程序成功。

SSH: Connecting from host [server] SSH: Connecting with configuration [node01] ... channel stopped SSH: EXEC: STDOUT/STDERR from command [/root/deploy.sh] ... Archive: /root/webapp-0.0.1-SNAPSHOT-bin.zip creating: webapp-0.0.1-SNAPSHOT/ creating: webapp-0.0.1-SNAPSHOT/lib/ extracting: webapp-0.0.1-SNAPSHOT/lib/test-jetty-servlet-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-webapp-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-xml-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-util-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-servlet-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-security-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-server-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/servlet-api-3.0.20100224.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-continuation-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-http-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/jetty-io-8.1.0.RC5.jar extracting: webapp-0.0.1-SNAPSHOT/lib/log4j-1.2.17.jar extracting: webapp-0.0.1-SNAPSHOT/lib/slf4j-log4j12-1.7.12.jar extracting: webapp-0.0.1-SNAPSHOT/lib/slf4j-api-1.7.12.jar extracting: webapp-0.0.1-SNAPSHOT/lib/spring-beans-4.2.0.RELEASE.jar extracting: webapp-0.0.1-SNAPSHOT/lib/spring-core-4.2.0.RELEASE.jar extracting: webapp-0.0.1-SNAPSHOT/lib/commons-logging-1.2.jar extracting: webapp-0.0.1-SNAPSHOT/lib/spring-context-4.2.0.RELEASE.jar extracting: webapp-0.0.1-SNAPSHOT/lib/spring-aop-4.2.0.RELEASE.jar extracting: webapp-0.0.1-SNAPSHOT/lib/aopalliance-1.0.jar extracting: webapp-0.0.1-SNAPSHOT/lib/spring-expression-4.2.0.RELEASE.jar extracting: webapp-0.0.1-SNAPSHOT/lib/webapp-0.0.1-SNAPSHOT.jar creating: webapp-0.0.1-SNAPSHOT/bin/ inflating: webapp-0.0.1-SNAPSHOT/bin/ creating: webapp-0.0.1-SNAPSHOT/conf/ inflating: webapp-0.0.1-SNAPSHOT/conf/applicationContext.xml inflating: webapp-0.0.1-SNAPSHOT/conf/log4j.xml PID: /root/webapp-0.0.1-SNAPSHOT/conf:/root/webapp-0.0.1-SNAPSHOT/lib/aopalliance-1.0.jar:/root/webapp-0.0.1-SNAPSHOT/lib/commons-logging-1.2.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-continuation-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-http-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-io-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-security-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-server-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-servlet-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-util-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-webapp-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/jetty-xml-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/log4j-1.2.17.jar:/root/webapp-0.0.1-SNAPSHOT/lib/servlet-api-3.0.20100224.jar:/root/webapp-0.0.1-SNAPSHOT/lib/slf4j-api-1.7.12.jar:/root/webapp-0.0.1-SNAPSHOT/lib/slf4j-log4j12-1.7.12.jar:/root/webapp-0.0.1-SNAPSHOT/lib/spring-aop-4.2.0.RELEASE.jar:/root/webapp-0.0.1-SNAPSHOT/lib/spring-beans-4.2.0.RELEASE.jar:/root/webapp-0.0.1-SNAPSHOT/lib/spring-context-4.2.0.RELEASE.jar:/root/webapp-0.0.1-SNAPSHOT/lib/spring-core-4.2.0.RELEASE.jar:/root/webapp-0.0.1-SNAPSHOT/lib/spring-expression-4.2.0.RELEASE.jar:/root/webapp-0.0.1-SNAPSHOT/lib/test-jetty-servlet-8.1.0.RC5.jar:/root/webapp-0.0.1-SNAPSHOT/lib/webapp-0.0.1-SNAPSHOT.jar starting...\c 2896 ok SSH: EXEC: completed after 1,204 ms SSH: Disconnecting configuration [node01] ... SSH: Transferred 1 file(s) Finished: SUCCESS

总结:

        整个过程,前面的安装和配置占了大部分时间,这是从无到有的一个过程,所以很繁琐,但是后续的构建项目,是很快的,这就是持续集成的好处,将人的工作由工具来完成,可以减少出错的概率,提高效率。

        另外,这还是没有集成代码review的部分。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/30115.html

    分享给朋友:

    “jenkins 连接windows服务器 jenkins发布到远程服务器” 的相关文章

    搬瓦工VPS与IPv6: 优化你的网络体验

    搬瓦工(BandwagonHost)作为一家由加拿大IT7 Networks公司推出的品牌,专注于提供性价比较高的VPS主机服务。我一直对VPS的体验充满好奇,尤其是搬瓦工的背景与发展历程。最初,搬瓦工主要销售超低价的OpenVZ方案,吸引了不少预算有限的用户。随着技术的发展和市场需求的变化,搬瓦工...

    台湾 VPS 服务器:低延迟高安全的理想选择

    台湾VPS服务器概述 我们常常听到“VPS服务器”这个词,但是仔细了解后,你会发现台湾的VPS服务器在众多选择中脱颖而出。这种服务器是“虚拟专用服务器”的缩写,它能让用户在一台物理服务器上分配自己的虚拟空间。这种技术让企业和个人用户可以以较低的成本拥有独立的服务器环境,从而更好地管理他们的网络资源。...

    狗云服务器怎么样?性能、服务与性价比全面解析

    狗云服务器(DogYun)自2019年成立以来,逐渐在国内云服务市场上崭露头角。最初的时候,我也只是偶然听说了这个名字,当时在寻找性能稳定又价格合理的云服务供应商时,恰好遇到了狗云。他们承诺提供高性价比的项目,这让我对他们充满了好奇。经过一番了解,发现狗云不仅仅是个新兴品牌,而是通过自身的技术积累和...

    黑五VPS促销: 省钱又省心的选择指南

    在这个数字化的时代,VPS(虚拟专用服务器)成为越来越多业务和个人的选择。VPS其实是一种独立的虚拟服务器,它通过物理服务器上的虚拟化技术进行资源分隔。因此,不同用户可以在同一台物理服务器上,拥有独立的操作空间。想象一下,你可以像使用传统的独立服务器一样,享受更高的性能和安全性,同时又不需要承担独立...

    深入了解LOC VPS:选择、评测与未来发展趋势

    LOC VPS,顾名思义,是一种基于位置的虚拟专用服务器。简单来说,LOC VPS是一种通过虚拟化技术在数据中心创建和管理的服务器环境。它为用户提供了一种灵活、可扩展的计算资源,可以满足不同需求的业务。相较于物理服务器,LOC VPS在资源利用率、成本和管理上都更加高效。 LOC VPS有几个显著的...

    AS4134:全球互联网中的自主系统与数据传输的未来

    什么是AS4134? AS4134是一个全球互联网中的自治系统编号,这个编号用于标识网络中的各种自治系统。让我简单说一下,自治系统可以被理解为单一的网络或网络集合,在运行自己的路由协议时相对独立。AS4134作为其中的一部分,协助数据在互联网中高效而安全地传输。当你在网上冲浪时,实际上是在通过多个这...