当前位置 主页 > 服务器问题 > win服务器问题汇总 >
Publish Over SSH插件使用
在使用Publish Over SSH之前,需要制作SSH私钥。机器间做免密登录配置。假设机器A,ip为192.168.AA.AAA,机器B: 192.168.BB.BBB,机器A能够免密登录机器B,机器B能够免密登录机器A,制作方式是:
进入A机器,执行:
cd ~ ssh-keygen -t rsa
通过下面的命令,表示可以通过机器192.168.AA.AAA免密登录到机器192.168.BB.BBB
ssh-copy-id 192.168.BB.BBB
验证方式是:在A机器上执行ssh 192.168.BB.BBB,然后执行ifconfig检查当前的ip,若发现机器的ip已经变成了192.168.BB.BBB说明免密登录设置成功。
进入B机器,执行:
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
参数说明:
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中的内容如下:
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是远程机器上执行的脚本):
脚本内容如下:
#!/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========================="