#概要
maven构建后,会生成war包,使war运行需要如下几步:
- 复制生成的war包到指定的目录(jenkins服务器和应用部署服务器不在同一台服务器) cp /scp
- 解压文件到指定的目录 unzip
我们需要在下图的中地方,输入需要执行的脚本
在post steps 选择 execute shell
在 command中输入要执行的脚本
jenkins服务器和应用服务器是同一台服务器
复制文件 cp/scp
cp 目标文件 复制目标目录 (本地复制文件)
scp 目标文件 登录远程服务器用户@ip/域名:复制目标目录 ( 复制文件到远程)
如: jenkins生成的war包位于:
/root/.jenkins/workspace/marketking/target/marketking.war
我们想复制到 /var/www
那么命令如下:
cp /root/.jenkins/workspace/marketking/target/marketking.war /var/www
解压文件 unzip
经过上面的复制,我们可以在。发现 /var/www/marketking.war
解压到 /var/www/marketking
使用:
unzip -o /var/www/marketking.war -d /var/www/marketking
-o : 不管文件是否存在,直接覆盖
-d : 如果你要解压到指定目录,而不是当前目录
jenkins服务器和应用服务器不在同一台服务器
##需要执行远程命令 ssh
我们使用ssh -l user ip 登录远程服务器,可是在使用自动执行的脚本时候我们没法输入密码,我们需要添加jenkins的公钥在应用服务器。
##查看自己/jenkins服务器的公钥
cd ~
cd .ssh/
ls // 查看是否有 id_rsa.pub 文件如果有
//如果有
cat id_rsa.pub //复制公钥(里面的内容)
如果没有则生成公钥:
参考这里
进入目标服务器,增加公钥:
在 authorized_keys 文件下增加你的公钥(如果没有创建文件)。
添加完成后,就可以使用ssh 不要密码登录服务器了。
最后使用如下命令,执行需要在远程执行的命令(ssh -t -t 会模拟出一个远程终端)
ssh -t -t 应用服务器ip/域名 "要执行的命令"