现在大家都在说DevOps,既然说到DevOps,那么jenkins配置部署是其中必不可少的一部分,本文就分享下我们是如何使用jenkins配置JAVA程序部署的。
01设置免密登录
其实jenkins也可以设置有密登录的,那为何要设置免密登录呢?主要是你的服务器主机密码可能会变动(安全级别高的要求一段时间换一次),这样jenkins每次都跟着换,是一件很繁琐的事情,所以不如设置免密。
1)从0开始配置
jenkins 主机
ssh acc@192.1.1.1
scp ~/.ssh/id_rsa.pub acc@192.1.1.1
:.ssh/id_rsa.pub
应用主机
cd .ssh
touch authorized_keys (如果已经存在这个文件, 跳过这条)
cat id_rsa.pub >> authorized_keys (将id_rsa.pub的内容追加到authorized_keys 中)
##(修改test/.ssh和authorized_keys的权限)
cd …
chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys
2)已经配置过成功的
如果已经有用户下面已经配置过了,其实只需要把authorized_keys、id_rsa.pub的内容(jenkins的公钥)拷贝到新的用户下面.ssh(如果没这个目录,直接mkdir .ssh即可)下面,然后执行
chmod 700 .ssh
chmod 600 authorized_keys
即可
我这边这个比较干净,只授权过jenkins免密登录,所以两个文件里面都只有一条公钥,直接拷贝到新的用户下面即可
3)到jenkins添加免密登录
上面两种配置均可。配置完,到jenkins的admin用户下
在Publish over SSH当中新增
对自己的SSH远程命名下(以后好识别的),设置IP、端口、用户名、用户主目录,然后点击Test Configuration,正常情况下会显示Success,如果没有显示,表示之前的公钥配置不对。
02开始配置JAVA项目
现在JAVA项目基本都是maven项目,所以我们都是新建maven构建。本文中以git配置为例(svn类似),在配置钱必须在jenkins公共的地方配置git或者svn的用户(这个可以直接百度去搜索下,很容易找到)。
选择对应的JDK版本、git仓库的路径和用户名密码、对应的pull的分支(本处我们使用了release分支作为pull构建的分支)
Pre-steps选择下图所示这个选项
选择对应的ssh服务器(就是上面设置的免密登录的服务。然后可以执行以下的命令,这个命令可以自定义,我们这里是用来备份原来的jar的)
Build当中设置构建,需要设置到对应的子工程
Post-steps还是选择下图所示这个选项
还是选择对应的ssh服务器,设置源jar路径,如果只传一个jar,如下图设置,如果要连lib一起传,则…bin/**/*.jar。
最后的命令当中,用了source…,因为jenkins无法识别远程服务器环境变量,所以得让其生效,否则java命令都无法识别。下图就是我们的profile.run文件,文件名是啥不重要,重要的是文件里面我们设置了jdk,这样在上面的命令窗口执行的时候就能识别java环境变量了。
03开始构建
下面就可以开始构建了。
看jenkins执行日志,执行成功:
再到应用服务器看日志:
也执行成功
大功告成!!!从此改完代码,只要到jenkins点一下“立即构建”即可实现自动化部署。