Jenkins是一个非常出色的持续集成服务器,本文主要介绍在CentOS系统中Jenkins的基本安装配置方法,供参考。

. 软件包:

1. 下载apache-maven-2.2.1-bin.tar
http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.tar.gz
2.
下载jenkinshttp://mirrors.jenkins-ci.org/war/ 列出了jenkins的所有release版本,请选择下载


. 安装

1.安装jdk

# chmod 755 jdk-8u51-linux-x64.tar.gz

# tar zxvf jdk-8u51-linux-x64.tar.gz -C /app/zpy/

# chown -R root.root  jdk1.8.0_51/

# vim /etc/profile

JAVA_HOME=/app/zpy/jdk1.8.0_51

JAVA_BIN=/app/zpy/jdk1.8.0_51/bin

PATH=$PATH:$JAVA_BIN:

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH


2.安装tomcat

# tar zxvf apache-tomcat-6.0.41.tar.gz -C /app/zpy/

# mv apache-tomcat-6.0.41/ tomcat_jenkins

修改tomcat配置文件

# vim tomcat_jenkins/conf/server.xml

修改8080端口的Connector节点,增加如下配置

URIEncoding="UTF-8"


3.安装maven

1)解压

 tar -zvxf apache-maven-2.2.1-bin.tar.gz

2)移动到其他目录

# mv apache-maven-3.3.9/ maven

3)配置环境变量
# vim /etc/profile

SVN_HOME=/app/zpy/subversion/bin

GIT_HOME=/app/zpy/git

GIT_BIN=/app/zpy/git/bin

MAVEN_HOME=/app/zpy/maven

JENKINS_HOME=/app/zpy/tomcat_jenkins/webapps/jenkins

JAVA_HOME=/app/zpy/jdk1.8.0_51

JAVA_BIN=/app/zpy/jdk1.8.0_51/bin

PATH=$PATH:$JAVA_BIN:$MAVEN_HOME/bin:$GIT_BIN:$SVN_HOME

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export MAVEN_HOME JENKINS_HOME JAVA_HOME JAVA_BIN PATH CLASSPATH


# . /etc/profile

4) 验证是否安装成功

mvn -v

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)

Maven home: /app/zpy/maven

Java version: 1.8.0_51, vendor: Oracle Corporation

Java home: /app/zpy/jdk1.8.0_51/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix"


5) 配置maven
编辑maven的配置文件

# cd maven/conf

# vi settings.xml

修改配置文件示例如下:

复制代码

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <localRepository>/data/jenkins</localRepository>

    <servers>

        <server>

            <username>admin</username>

            <password>password</password>

        </server>

    </servers>

    <mirrors>

        <mirror>

            <!-- This sends everything else to /public -->

            <id>nexus</id>

            <mirrorOf>central</mirrorOf>

            <url>http://10.0.70.242:8081/nexus/content/repositories/public</url>

        </mirror>

    </mirrors>

    <profiles>

        <profile>

            <id>nexus</id>

            <!-- Enable snapshots for the built in central repo to direct -->

            <!-- all requests to nexus via the mirror -->

            <repositories>

               

<repository>

                    <id>central</id>

                    <url>http://10.0.70.242:8081/nexus/content/repositories/public</url>

                    <releases>

                        <enabled>true</enabled>

                        <updatePolicy>always</updatePolicy>

                    </releases>

                    <snapshots>

                        <enabled>true</enabled>

                        <updatePolicy>always</updatePolicy>

                    </snapshots>

                </repository>

            </repositories>

            <pluginRepositories>

                <pluginRepository>

                    <id>central</id>

                    <url>http://192.169.10.109:8081/nexus/content/repositories/public</url>

                    <releases>

                        <enabled>true</enabled>

                        <updatePolicy>always</updatePolicy>

                    </releases>

                    <snapshots>

                        <enabled>true</enabled>

                        <updatePolicy>always</updatePolicy>

                    </snapshots>

                </pluginRepository>     

            </pluginRepositories>

        </profile>

    </profiles>

    <activeProfiles>

        <!-- make the profile active all the time -->

        <activeProfile>nexus</activeProfile>

    </activeProfiles>


    <pluginGroups>

        <!-- define the sonatype plugin group, so the nexus plugins will work without 

                         typing the groupId -->

        <pluginGroup>org.sonatype.plugins</pluginGroup>

    </pluginGroups>

</settings>


复制代码

其中localRepository节点表示私服中下载的jar包存放路径,根据实际存放的路径修改。
所有url节点中包含的地址:http://192.169.10.109:8081/nexus/content/repositories/public,表示nexus私服的地址,请根据实际的地址修改。由研发提供,没有的话,使用默认的setting.xml配置文件,走公有的库,构建任务时下载会慢一些。
username
password节点表示登录nexus私服的用户名及密码。

4、安装jenkins
1)
复制到tomcat webapps目录

# cp jenkins.war /app/zpy/tomcat_jenkins/webapps/

2)配置环境变量

# vim /etc/profile

SVN_HOME=/app/zpy/subversion/bin

GIT_HOME=/app/zpy/git

GIT_BIN=/app/zpy/git/bin

MAVEN_HOME=/app/zpy/maven

JENKINS_HOME=/app/zpy/tomcat_jenkins/webapps/jenkins

JAVA_HOME=/app/zpy/jdk1.8.0_51

JAVA_BIN=/app/zpy/jdk1.8.0_51/bin

PATH=$PATH:$JAVA_BIN:$MAVEN_HOME/bin:$GIT_BIN:$SVN_HOME

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export MAVEN_HOME JENKINS_HOME JAVA_HOME JAVA_BIN PATH CLASSPATH


# . /etc/profile

3) 启动tomcat,使用http://localhost:8080/jenkins访问jenkins

4) 输入/app/zpy/tomcat_jenkins/webapps/jenkins/secrets/initialAdminPassword中的密码

wKiom1gPComwVyU3AAEAiOfJVkA450.png-wh_50


5) 安装默认安装

wKiom1gPCrvz×××OAAGHVk8VFt8574.png-wh_50


6)默认插件安装完成,继续。(有些插件安装失败,也可继续)

wKiom1gPCvfw584HAAGMUmumcJM860.png-wh_50


7)不填内容,选择continue as admin(后面进行用户管理)

wKiom1gPCzGSIUp-AACaHFKNg30037.png-wh_50


wKioL1gPC1_D_j9BAACSxG1ZHvE368.png-wh_50


开始使用!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


1)创建用户

系统管理管理用户填入用户名、密码

wKiom1gPC6qSwelpAAByrU-N-DQ877.png-wh_50

wKioL1gPC6rjjqDxAACi1mLHZvM400.png-wh_50

wKiom1gPC6rB7JUaAABsKB-QFhQ066.png-wh_50



设置\修改密码系统管理管理用户选择指定的用户设置到最下面修改密码

wKioL1gPC9ThtyzCAABQxfn5Fio662.png-wh_50

wKioL1gPC9SRtVjSAACMfC2MaWo602.png-wh_50


2)插件配置

查看已安装的

wKioL1gPDAHCshwBAACMfC2MaWo127.png-wh_50

wKiom1gPDBLBu0DqAAC03n-jdy0673.png-wh_50


系统管理管理插件--高级浏览上传

wKiom1gPDCrALv7JAABDwebOqEI402.png-wh_50


4)新建任务

每个任务为部署文件夹或压缩包

首先创建一个imp-share的任务。之后部署的应用需要依赖于这个imp-share(都由研发提供,上传至svn)

wKiom1gPDPuj0vz0AABcQLBq1SY982.png-wh_50

wKioL1gPDPvCaIhGAACjVnpEnPE754.png-wh_50


需要配置的主要有三个方面:svn   maven    deploy


I. svn配置,版本库地址、用户名和密码

wKioL1gPDh7ABhOcAABBl0ue3Kg014.png-wh_50


II. (注意Global Tool Configuration中已配置maven

wKiom1gPDlTAsBlOAAAoaxl1atY030.png-wh_50


III. 完成后点击立即构建。至此依赖包构建完成。


5)新建应用任务

wKiom1gPFxqwP6dwAABpaOotS5k320.png-wh_50

I. svn配置,版本库地址、用户名和密码

wKiom1gPFsjTfG2TAABBl0ue3Kg734.png-wh_50

注意去掉勾选,如果选上,svn如果更新就自动发包。

wKioL1gPF4PSYWSvAABIY1HZiA8805.png-wh_50


II. (注意Global Tool Configuration中已配置maven

wKiom1gPGIiQCXBHAABJC3fBm7Q463.png-wh_50

完成点击立即构建


III. 自动远程部署到tomcat

接下来要完成自动构建war包后,将这些war包上传到远程linus的tomcat的webapps目录,更新项目的war包,并重启tomcat服务。

安装插件

https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin下载hpi到本地

系统管理--> 管理插件--> 高级--> 上传.hpi插件

wKiom1gQWm-jfX2EAACwVyp7RM4472.png-wh_50




配置ssh内容:

系统管理--> 系统设置--> publish over ssh 进行配置

wKioL1gQWumCDno9AAByU4ANEMU385.png-wh_50

点击高级

wKiom1gQWx6DqQTXAAB5jbZiKAA944.png-wh_50

注释:

如果没有做ssh等效性,Passphrase、path to key、key处不需要填写。

Disable exec 是禁止执行命令

SSH Server Name随便设置一个项目名

Hostname 是tomcat服务器的地址

username 是系统的用户名

Remote Directory 是登录到的路径,此后作为根路径,后面的配置依据于这个路径

勾选Use password authentication,or use a different key

Passphrase/Password 填写系统用户的密码


进行任务配置

配置imp-im-web任务

构建够操作--> Sned build artifacts over SSH

wKioL1gQXG_yEFdcAACMG74lmOE279.png-wh_50


注释:

SSH Server

Name 为之前ssh配置的项目名称

Transfers

Source files 是war包的位置。默认根路径为/app/zpy/tomcat_jenkins/webapps/jenkins/workspace/imp-im-web所以只从target填写即可

Remove prefix 去掉的路径。如果不去掉,传到tomcat上的包路径会加上目录target比如Remote directory设置为/tmp则拷贝过去后成为/tmp/target/imp-im.war

Remote directory 拷贝到tomcat上的路径,存放war包

Exec command 拷贝war包后 要执行的操作。

deploy.sh 脚本的内容如下:

#!/bin/sh

#defined 

source /etc/profile

TOMCAT_HOME="/app/zpy/tomcat"

ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`

echo $ID 

echo "kill tomcat"

kill -9 $ID

echo "remover war file"

cd "$TOMCAT_HOME"/webapps

rm -rf imp-im

rm -rf imp-im.war

echo "copy war to webapp"

cd /tmp

mv imp-im.war "$TOMCAT_HOME"/webapps

cd "$TOMCAT_HOME"/bin

echo "start tomcat"

./startup.sh



至此imp-im-web任务配置完成,点击立即构建。成功会显示

wKioL1gQXn6SfwqdAAA1pDtq5Hc447.png-wh_50



备注:

对于svn上存放的不是源码,是编译完成的war包的情况。

新建任务,选择自由风格

wKiom1gQfXrTnYBEAACPWF4HqT8132.png-wh_50

imp-im.war在imp-im-web-test/target下

wKiom1gQfbfgJDX6AABgIQ1eQKs786.png-wh_50

选择Send files or execute commands over SSH after the build runs

wKioL1gQferwsR7JAACbSOUUcps765.png-wh_50

点击立即构建,完成!!!