jenkins --部署项目到服务器需要的脚本

来源:互联网 发布:驾驶员网络培训 编辑:程序博客网 时间:2024/06/09 03:27

概要

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/域名  "要执行的命令"