公司由于一些项目是部署在阿里云内网中,每次都是本地打包上传到跳板机,然后从跳板机再上传到具体的服务器,十分麻烦。
我们目前使用Jenkins来自动化构建和部署,只是部署开发环境和测试环境,生产环境没有采用,公司也没有人愿意去做,正好最近忙完手上的活,不是很忙,就研究一下如何通过Jenkins将项目部署阿里云内网的服务器。
准备工作
Java:11
Jenkins:2.399(这个版本最低也是java11)
跳板机:阿里云公网可访问的IP,也可访问内网服务器
安装插件 Publish Over SSH
需要提前下载好插件:Publish Over SSH,如果没有下载的话,可以在【Dashboard】->【Manage Jenkins】->【System Configuration】->【Plugins】安装。
安装好后,我们进入【Dashboard】->【Manage Jenkins】->【System Configuration】->【System】找到 Publish over SSH 插件位置
配置 SSH Servers
找到 SSH Servers,点击【新增】按钮
配置跳板机IP
填写对应的信息,如果填写跳板机IP,请点击【高级】展开
主要是Jump host的IP,这个必须是可通过公网可以访问的。然后目标服务器和跳板机需要同时设置一样的用户名和密码,只需要在目标服务器配置账号即可。
测试配置和发布
点击右下角【Test Configuation】按钮
哎呀,连不上了,怎么回事
上网搜了一些,原来是这个插件的bug,所以信息填对了,就不要关心了。
how to configure ssh server on jenkins using jump host?
现在我们来验证一下能不能部署
部署成功,控制台后面已经xxx-server-1.4.0.jar文件了
登录阿里云服务器也能看到,OK了~
补充:
当出现如下问题时:
请参照以下解决方案:
2.Jenkins升级后Pipeline内的sshCommand报错_jenkins algorithm negotiation fail: algorithmname=-CSDN博客
3.JENKINS远程访问SSH提示Algorithm negotiation fail - 掘金
我使用了方案3,jsch从0.2.16降为0.1.55