一、使用的场景
项目为微服务项目,使用jenkins进行统一部署。基本思路是
- 在jenkins服务器上使用git插件拉取项目代码
- 使用进行打包
- 将打好的jar包使用scp远程复制到部署服务器上
- 执行远程shell脚本启动jar包项目
二、关于密码的问题(免密操作)
scp命令copy文件时需要输入密码,然而shell脚本中对密码输入的处理还是很麻烦的。有以下两种方式:
1.使用密码插件,自动输入密码
2.使服务器之间相互信任,这样scp命令就不需要输入密码了
第二种方式为
1.复制jenkins服务器用户目录下的 .ssh/id_rsa.pub中的内容
cat ~/.ssh/id_rsa.pub
2.将上面复制的内容添加到应用服务器(也就是需要远程部署应用的服务器)的.ssh/authorized_keys文件中。
一般这个文件初始都是空的,直接使用vim命令复制进去就好。
3.这个时候使用jenkins构建时,会提示失败的,提示为权限不够,这个问题可能很多人都遇到,就是一个大坑等着你跳的。
原因:虽然我们已经配置了相许信任,但是第一次使用scp命令需要先自己手动在shell中端中执行一次才可以。那么我们使用scp随意复制个文件过去,输入密码。
之后再用jenkins复制文件就免输密码了。