Jenkins+Ant+SSH 实现自动打包部署更新服务器项目

背景

在之前负责的项目中,项目的日常维护、开发、打包以及更新都是我和其他同事完成,而该项目需要部署的服务器比较多,再加之远程服务器的时候网络比较卡顿,这就浪费了大量的时间,所以就想到了该工具的使用。

下载

官方下载链接:https://jenkins.io/download/,选择下载war包即可。

启动以及初始化

将下载的war包放到tomcat下的webapp中,启动即可。如果没有修改默认端口,在浏览器访问localhost:8080/jenkins 检查是否启动成功,第一次启动时消耗的时间比较长,请耐心等待,直到出现如下图中所示则启动成功

第一次启动成功之后,根据图中给出的文件路径,将此文件中的密码填写到上图中,点击确认之后又得等待一段时间,直到出现如下图所示页面,

上图中有两个选项,Configure Proxy表示会将所有插件下载到本地,默认目录在C:\Users\Administrator\.jenkins\plugins目录下面,选择此项就比较慢,需要耐心等待; 后面那个选项代表跳过此步骤,遇到需要使用的插件时再手动安装,此步完成后进入下图所示页面

填写提交完以后进入Jenkins主页面

在这里顺便创建一个新任务,点击创建一个新任务,进入如下页面

第一个项目的名称就叫做helloworld吧,然后选择第一项创建一个自由风格的软件项目,然后点击ok

插件配置

安装必要插件,如下图1中Avaliable表示可以安装的所有插件,其中Folders Plugin是Jenkins运行的必要插件,Publish Over SSH、SubversionPlug-in、AntPlugin和JDKTool等插件是在后续工作中需要用到的

此外也可以在此页面中选择Advanced模块,在此模块下指定插件所在本地的位置进行加载,如下图

安装完插件,进行插件的配置,在这里我用到的插件有Ant和jdk,如下图:

远程连接用到了ssh,首先我们使用POWERSHELL Server 2016和Putty进行测试配置来打通服务器和客户端之间的连接,首先下载powershell和putty,下载地址分别为https://www.nsoftware.com/powershell/server/download.aspxhttps://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html,下载安装完成后,启动PowerShell,选择已有的证书/密钥或者新生成都可以,将新生成或者已有的证书填入证书存储区位置,如果设置了密码将密码填进去,ssh默认端口是22,可以在下面将端口改为其他

证书放到如下

选择SFTP模块,如下图路径是客户端上传给服务器项目后的默认存储路径,也可以自己指定路径

选择安全模块,ssh服务有密码和公钥密钥认证两种启动方式,在这里着重介绍使用公钥认证方式,使用公钥认证方式需要将客户端生成的公钥上传到服务器端,并且在如下图中最下面选择公钥在服务器端的位置,这里选择启用公钥认证,然后点击启动

检验ssh服务器客户端之间是否打通。在客户端启动PUTTYGEN.EXE,点击如下图中红框内摁键生成公钥和密钥,在该页面空白处不停地移动鼠标可以加快公钥和密钥生成速度,生成以后可以选择输入密码,并且将生成的公钥上传到服务器,将密钥保存到本地

然后打开PUTTY.EXE,填写远程地址以及端口,如下图:

选择SSH下的Auth,并且将保存在本地的密钥填入如下图中红框内,然后点击open

如果配置都正确,则会弹出一个命令框,如果在生成公钥密钥后设置了密码,那么在命令框中输入任意用户名以及设定的密码

如果出现上图中内容,则证明ssh测试通过,接下来需要在jenkins中配置ssh,安装publish over ssh插件,然后在系统管理下的系统设置中找到ssh模块并填写生成公钥密钥时设置的密码、远程连接地址、远程用户名以及密钥所在位置,点击Test Confinguration,如果显示success则连接成功,否则连接不成功检查配置信息,如下图所示:

如果是账号密码连接则需要填写如下图所示信息:

选择自己的项目,点击项目下的configure进行配置,如下图中设置的目录为项目打包保存的地址:

设置svn服务器地址,填写svn中自己的用户名密码,如下图:

设置触发器和打包环境,并且指定Ant打包使用的xml文件位置,如下图:

设置需要上传的文件以及需要执行的脚本文件,Source files为项目在客户端的位置(此处为相对路径,就是相对于上文中自己设置的工作空间的路径),remove prefix为去掉目录前缀(如文件目录为hello\test.war,前缀为hello\,则上传到服务器的文件为test.war),Exec command指定的路径为脚本文件在服务器上的路径;

设置完成点击保存,然后选择构建立即构建,下面#46是最新构建的一个项目,构建项目时可以点击Console Output查看输出日志检查项目是否构建成功,

我自己编写的这个脚本包括了备份、将上传的项目复制到tomcat下的webapp、重新启动该服务等等一系列任务,若出现如下图所示内容则代表大功告成,项目已经备份更新重启 。

建议

服务器启用ssh服务时最好不要使用默认端口,服务器中的脚本文件的执行权限也应考虑周全

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

推荐阅读更多精彩内容