jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

2025-05-27 0 24

publish over ssh插件使用

在使用publish over ssh之前,需要制作ssh私钥。机器间做免密登录配置。假设机器a,ip为192.168.aa.aaa,机器b: 192.168.bb.bbb,机器a能够免密登录机器b,机器b能够免密登录机器a,制作方式是:

进入a机器,执行:

?

1

2
cd ~

ssh-keygen -t rsa

通过下面的命令,表示可以通过机器192.168.aa.aaa免密登录到机器192.168.bb.bbb

?

1
ssh-copy-id 192.168.bb.bbb

jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

验证方式是:在a机器上执行ssh 192.168.bb.bbb,然后执行ifconfig检查当前的ip,若发现机器的ip已经变成了192.168.bb.bbb说明免密登录设置成功。

进入b机器,执行:

?

1

2

3
cd ~

ssh-keygen -t rsa

ssh-copy-id 192.168.aa.aaa

验证方式是:在b机器上执行ssh 192.168.aa.aaa,然后执行ifconfig检查当前的ip,若发现机器的ip已经变成了192.168.bb.bbb说明免密登录设置成功。

在系统配置中配置publish over ssh

进入jenkins—>系统管理—>系统设置,配置publish over ssh

jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

参数说明:

passphrase:密码(key的密码,如果你设置了)
path to key:key文件(私钥)的路径
key:将私钥复制到这个框中
disable exec:禁止运行命令
私有配置:
ssh server name:标识的名字(随便你取什么)
hostname:需要连接ssh的主机名或ip地址(建议ip)
username:用户名
remote directory:远程目录
use password authentication, or use a different key:可以替换公共配置(选中展开的就是公共配置的东西,这样做扩展性很好)
私有配置的高级:
port:端口(默认22)
timeout (ms):超时时间(毫秒)默认即可
disable exec:禁止运行命令
test configuration:测试连接

对构建的项目中的ssh进行配置:

在执行前要配合build–>post steps中的execute shell配置,执行scp命令,将要拷贝的项目先远程拷贝到远程机器上。在execute shell中的内容如下:

?

1

2
scp -r /root/.jenkins/workspace/youxuan_api_pre/qt360-web/target/youxuan_api root@192.168.bb.bbb:/usr/local/jenkinstempfolder/

export build_id=dontkillme

点击构建的项目—>配置–>构建后操作,选择send build artifacts over ssh,进行如下配置(注意:下面的exec command是远程机器上执行的脚本):

jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

脚本内容如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
#!/bin/bash

echo "==================start deploy project========================="

ps -aux | grep /usr/local/tomcat/ | grep -v grep > tomcat_info.txt

sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt

sed 's/ / /g' tomcat_info1.txt > tomcat_info.txt

sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt

cat tomcat_info1.txt | cut -d' ' -f 2 > tomcat_info.txt

for line in `cat tomcat_info.txt`

do

kill -9 $line

done

cd /usr/local/tomcat/webapps

rm -rf youxuan_api*

mv /usr/local/jenkinstempfolder/youxuan_api /usr/local/tomcat/webapps

/etc/init.d/tomcat start

sync

echo 3 > /proc/sys/vm/drop_caches

echo "==================deploy project success========================="

参数说明:

ssh server name:选个一个你在系统设置里配置的配置的名字
transfer set source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)
remove prefix:移除目录(只能指定transfer set source files中的目录)
remote directory:远程目录(根据你的需求填写吧,因为我这儿是测试,所以偷懒没有填写。默认会继承系统配置)
exec command:把你要执行的命令写在里面
(新版本的要求transfer set source files和exec command都要填写,可以不了他。老版本的允许只填写一个)
高级:
exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:**/*.log,**/*.tmp,.git/)
pattern separator:分隔符(配置transfer set source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
no default excludes:禁止默认的排除规则(具体的自己看帮助)
make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
flatten files:只上传文件,不创建目录(除了远程目录)
remote directory is a date format:远程目录建立带日期的文件夹(需要在remote directory中配置日期格式),具体格式参考下表:
remote directory directories created
'qa-approved/'yyyymmddhhmmss qa-approved/20101107154555
'builds/'yyyy/mm/dd/'build-${build_number}' builds/2010/11/07/build-456 (if the build was number 456)
yyyy_mm/'build'-eee-d-hhmmss 2010_11/build-sun-7-154555
yyyy-mm-dd_hh-mm-ss 2010-11-07_15-45-55
exec timeout (ms):运行脚步的超时时间(毫秒)
exec in pty:模拟一个终端执行脚步
add transfer set:增加一个配置

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对快网idc的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/tototuzuoquan/article/details/78568655

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 行业资讯 jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明 https://www.kuaiidc.com/68245.html

相关文章

猜你喜欢
发表评论
暂无评论