第一篇文章中项目部署,是以每台目标服务器做为一个Jenkins的节点,然后在每个节点中拉取代码,编译,打包,测试,部署。这样的好处,在有大量的任务部署时,可以同时进行,不用等待一个个的任务执行。缺点,每台目标主机,都需要拉取代码,浪费磁盘空间。
第二种方式部署:
1)在一个Jenkins节点中,进行拉取代码,然后打包,再把包 scp 到对应的服务器中。
让Jenkins免密登录目标主机:
1. 在Jenkins所在的主机中,生成ssh秘钥对
# ssh-keygen -t rsa
2. 将.ssh 目录下的公钥, scp到目标服务中用户目录下的.ssh目录中,并重命名为authorized_keys (该文件名是固定的)
# scp id_rsa.pub sto@192.168.1.48:/home/sto/.ssh/authorized_keys
3. Jenkins,如果要登录多台目标主机,只需要将公钥拷贝到目标主机中即可,重复第2步
Jenkins任务创建时,在BUILD(构建)模块哪里,
先选Execute Shell (这个本地执行shell),再添加一个Execute shell script on remote host using ssh (远程主机执行shell)选项,
说明:本地执行shell ,包括打包,和scp 包到目标主机
远程执行shell,包括停止应用服务器,替换新包,启动应用服务器