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

2、输入名称和项目类型

3、设置编译的版本号等信息


4、设置svn库地址:

输入项目托管的svn的地址,如果有出现要输入账号和密码的地方,输入即可。

如果有出现如下说明用户或密码不对:

点击进去重新设置用户和密码

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即可。

2、配置ssh内容:
在系统管理-》系统设置里
找到Publish over SSH
然后输入:
3、配置Post Steps
这里还是接着上面的JavaWeb项目,这个配置得安装了上面的插件后才会显示!


其中,
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"

 

步骤:
将此脚本放入/etc/init.d下,加x执行权限
根据自己的业务更改ssh里的命令
 
4、构建部署
点击项目的构建按钮,最终出现如下:
 
 
在linux上打开浏览器,输入http://localhost:8080/JavaWeb-0.0.1-SNAPSHOT/

 

注意:这里配置的ssh用户:lin要有root的权限,要不可以会报错没有权限执行kill 或rm 命令

 

 

修改Jenkins用户的密码

打开忘记密码的用户文件夹,里面就一个文件config.xml。嗯,就是它了。打开config.xml,里面有一堆的东西,找找。。。找到了<passwordHash>节点,如图:

 

把<passwordHash>节点的内容(图中黑色的那一串)换成#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS

(注意前后有木有空格)

保存,重启Jenkins程序。

然后输入用户名,密码111111

 

posted on 2017-04-14 14:30  法海降妖  阅读(208)  评论(0编辑  收藏  举报