以前使用jenkins都是测试弄得,只不过之前自己来玩了下,里面的配置其实应该是只将需要的jar包上传或者覆盖掉远程服务器上面然后再restart程序(http://blog.csdn.net/qq_20641565/article/details/79132797),而非上传整个tar包到远程再解压。但是下面的内容我也不想修改了,将就看看吧。
jenkins是一个很好用的自动化构建工具用于开发测试的持续集成。
当我们开发系统的时候,经常需要打包扔到测试环境执行,这个步骤很固定但是又很繁琐,特别是在做测试的时候,可能改了bug又要重新打包扔测试环境去,特别是很短时间内改了N个bug,那要打包N次。
如果我们使用jenkins做持续集成,就是一劳永逸,先设置一些东西,到时候改完bug直接构建运行,方便快捷。
jenkins安装也很简单,就是一个war包,可以直接用:
java -jar jenkins.war
我还是喜欢将war用tomcat来管理。
安装的时候最好设置下jenkins的全局环境变量,到时候关于它的一些东西全都会放到该目录下,当然也可以在tomcat启动的时候指定jenkins的环境变量,只需要在catalina.sh加上如下的export即可,路径根据自己需求定义。
# OS specific support. $var _must_ be set to either true or false.
export JENKINS_HOME="/data/apps/jenkins"
安装完成后,根据自己的需要下载一些插件,比如ssh、git或者svn等等插件。
然后去配置写全局插件,maven、git、jdk等等。
这里是maven的setting文件地址:
JDK的配置(需要自己安装jdk):
git的配置(需要在服务器上面安装git):
maven的配置(需要在服务器上面安装maven):
然后配置下系统设置:
这里表示保留几个构建,按照自己需求:
远程ssh命令插件:
ssh远程scp以及命令插件 publish over ssh
其中上面:
Passphrase 是你远程机器的密码
Path to key 是你本机私钥的地址
Key 本机私钥
注意这里私钥是本机而非远程
一般只将私钥粘贴到这里就行了,或者指定地址。
Remote Directory 是远程机器上面的根目录,到时候远程上传东西都是到这个里面,不配置就是默认的家目录(比如:root 就是/root)
ssh秘钥生成:
ssh-keygen -t rsa -C "你的名字"
公钥的拷贝:
ssh-copy-id IP
然后来创建一个项目:
这里根据自己的需求
我用git作为测试,其中前提是自己已经将自己的公钥配置到了git上面。
注意:这里可能会报错:
Warning: Permanently added '10.0.4.147' (RSA) to the list of known hosts
如果配置正确还要报错,只需要vi /etc/ssh/ssh_config文件在最后面添加如下两行即可:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
这里可以配置cron表达式,表示什么时候自动检查构建项目:
这里可以在构建之前停止服务或者备份(这里是补的一个图):
这里让jekins打包:
这里就是使用ssh 发布到远程机器上面,并且解压,执行:
然后配置完成点击立即构建:
查看远程机器上面的进程是否存在:
整个流程如上.
其中测试用的java项目如下:
项目就是用assemb打成的tgz包,start.sh就是启动的MainClass