Jenkins从无到有
Jenkins详细安装与构建部署使用教程
部分自转载http://blog.csdn.net/evankaka
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
本文使用的Linux:centos
其中JDK、Tomcat、SVN服务器请看这里
一、安装Jenkins
本文直接使用war包安装
下载地址:https://jenkins-ci.org/content/thank-you-downloading-windows-installer/
war包有两种安装方法
方法一
下载jenkins.war, 拷贝到D:\Java\Tool\jenkins()下,然后运行java -jar jenkins.war. (注意需要先安装JDK,然后设置JAVA_HOME环境变量且将%JAVA_HOME%\bin加入到PATH环境变量中)运行如下:
访问http://localhost:8080 , jenkins的主界面如下:
方法二
把Jenkins 1.409.1版解压,把得到的war包直接扔到tomcat下,启动tomcat,Jenkins就安装完毕,访问http://localhost:8080
二、构建一个Maven项目
1、新建一个job
![](https://images2015.cnblogs.com/blog/1145243/201704/1145243-20170414140416251-1812511166.png)
2、输入名称和项目类型
3、设置编译的版本号等信息
![](https://images2015.cnblogs.com/blog/1145243/201704/1145243-20170414140646548-123564817.png)
4、设置svn库地址:
输入项目托管的svn的地址,如果有出现要输入账号和密码的地方,输入即可。
如果有出现如下说明用户或密码不对:
![](https://images2015.cnblogs.com/blog/1145243/201704/1145243-20170414140849658-415749757.png)
点击进去重新设置用户和密码
5、配置jdk和maven
第一次打开出现如下,点击进去。要求提示设置JDK和Maven
点击系统管理-》系统设置,找到JDK和Maven的设置位置
选择本电脑的:
9、到这里已经可以构造这个项目了。
点击构建
构建输出的信息:
构建成功输出如下 :
10、验证
这时它已经自动把这个项目打包了一个war包,默认打包到了C:\Users\linbingwen\.jenkins\workspace\JavaWeb\JavaWeb\target
或者点击如下:
三、自动远程部署到tomcat
接下来要完成自动构建成war包后,将些war包上传到远程linux的tomcat的webapps目录,更新项目的war包,并重启tomcat.
1、安装插件
系统管理-》管理插件,在可选插件里找到下面这个,然后点击直接安装命令,安装成功后要重启jenkins
t笔者在安装插件时报错如下:
这应该是天朝的墙所导致的,所以笔者就使用了手动安装的方式。
解决方法:
手动安装
到https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin,下载hpi到本地电脑到
在系统管理--管理插件--高级--浏览-上传插件即可
然后它自动上传并安装:
红色的是笔者在线安装不成功的,蓝色的是笔者安装成功的了,之后重启jenkis即可。
然后输入:
![](https://images2015.cnblogs.com/blog/1145243/201704/1145243-20170414142009064-69194293.png)
这里还是接着上面的JavaWeb项目,这个配置得安装了上面的插件后才会显示!
![](https://images2015.cnblogs.com/blog/1145243/201704/1145243-20170414142030501-1122980022.png)
Transfer SetSource files:表示要上传的本地的war包及路径,可到工作空间去看
Remove prefix:表示要上传时要去除的文件夹,即只上传war包
remote driectory:即表示执行时的路径,相当于把war包上传到这里了
exec commad:要执行的命令
1 #!/bin/bash 2 # chkconfig: 2345 90 10 3 LocalHome="/usr/local/" 4 TomcatHome="/usr/local/apache-tomcat-8.0.11/" 5 Passwd= 6 ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'` 7 RETVAL=0 8 export JAVA_HOME=/usr/java/jdk1.7.0_67 9 export PATH=$PATH:$JAVA_HOME/bin 10 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib 11 export TOMCAT_HOME=/usr/local/apache-tomcat-8.0.11 12 export CATALINA_HOME=/usr/local/apache-tomcat-8.0.11 13 14 getPID() { 15 PID=$(ps -ef | grep -v 'grep' | grep "${CATALINA_HOME}/conf/logging.properties" | awk '{print $2}') 16 } 17 18 status() { 19 if [ "$ID" = "" ] ; then 20 echo -e "tomcat status is \033[31m [ off ] \033[0m" 21 else 22 echo -e "tomcat status is \033[32m [ enabled ] \033[0m" 23 echo -e "tomcat pid is \033[32m [ $ID ] \033[0m" 24 fi 25 } 26 start() 27 { 28 getPID 29 if [[ "${PID}X" != "X" ]]; then 30 echo "tomcat is already running" 31 else 32 echo "tomcat is starting" 33 sh $CATALINA_HOME/bin/startup.sh 34 tailf ${CATALINA_HOME}/logs/catalina.out 35 fi 36 37 38 } 39 40 stop() { 41 getPID 42 if [[ "${PID}X" == "X" ]]; then 43 echo "tomcat is not running" 44 else 45 kill -9 $PID 46 echo "tomcat is stop done" 47 fi 48 echo "tomcat is stop" 49 } 50 51 restart() { 52 getPID 53 if [[ "${PID}X" == "X" ]]; then 54 echo "tomcat is not running,and will be start" 55 ${CATALINA_HOME}/bin/catalina.sh start 56 echo "tomcat is starting" 57 else 58 kill -9 $PID 59 echo "tomcat is stop" 60 ${CATALINA_HOME}/bin/catalina.sh start 61 echo "tomcat is starting" 62 fi 63 } 64 65 66 startup(){ 67 sh $CATALINA_HOME/bin/startup.sh;tailf $CATALINA_HOME/logs/catalina.out 68 } 69 70 bakwar() { 71 echo "remover war file" 72 cd "$LocalHome" 73 cp -R $CATALINA_HOME/webapps/ /backup 74 cd $TOMCAT_HOME/webapps 75 rm -rf p2p_back* 76 } 77 78 cpwar() { 79 cp /publish/p2p_back.war $CATALINA_HOME/webapps/ 80 echo "copy war to webapp"
根据自己的业务更改ssh里的命令
![](https://images2015.cnblogs.com/blog/1145243/201704/1145243-20170414142157126-2111189047.png)
注意:这里配置的ssh用户:lin要有root的权限,要不可以会报错没有权限执行kill 或rm 命令
修改Jenkins用户的密码
打开忘记密码的用户文件夹,里面就一个文件config.xml。嗯,就是它了。打开config.xml,里面有一堆的东西,找找。。。找到了<passwordHash>节点,如图:
把<passwordHash>节点的内容(图中黑色的那一串)换成#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS
(注意前后有木有空格)
保存,重启Jenkins程序。
然后输入用户名,密码111111