jenkins安装与配置

1、添加Jenkins的源(repository):

①sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo    //采用root权限

②sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

2. 安装/检查JDK:
$ java --version      //若安装的话,此处会显示版本号


$ sudo yum install java-1.6.0-openjdk           //如果没有安装,则在这里进行安装

3、安装Jenkins:
$ sudo yum install jenkins
安装完成后,有如下相关目录:
(3.1)/usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里。
$ cd /usr/lib/jenkins
$ ll
-rw-r--r-- 1 root root 52891723 Feb 27 00:13 jenkins.war
(3.2) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。内容如下:
## Path:        Development/Jenkins
## Description: Configuration for the Jenkins continuous build server
## Type:        string
## Default:     "/var/lib/jenkins"
## ServiceRestart: jenkins
#
# Directory where Jenkins store its configuration and working
# files (checkouts, build reports, artifacts, ...).
#
JENKINS_HOME="/var/lib/jenkins"
## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Java executable to run Jenkins
# When left empty, we'll try to find the suitable Java.
#
JENKINS_JAVA_CMD=""

## Type:        string
## Default:     "jenkins"
## ServiceRestart: jenkins
#
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="jenkins"


## Type:        string
## Default:     "-Djava.awt.headless=true"
## ServiceRestart: jenkins
#
# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

## Type:        integer(0:65535)
## Default:     8080
## ServiceRestart: jenkins
#
# Port Jenkins is listening on.
# Set to -1 to disable
#
JENKINS_PORT="8080"

## Type:        integer(0:65535)
## Default:     8009
## ServiceRestart: jenkins
#
# Ajp13 Port Jenkins is listening on.
# Set to -1 to disable
#
JENKINS_AJP_PORT="8009"

## Type:        integer(1:9)
## Default:     5
## ServiceRestart: jenkins
#
# Debug level for logs -- the higher the value, the more verbose.
# 5 is INFO.
#
JENKINS_DEBUG_LEVEL="5"

## Type:        yesno
## Default:     no
## ServiceRestart: jenkins
#
# Whether to enable access logging or not.
#
JENKINS_ENABLE_ACCESS_LOG="no"


## Type:        integer
## Default:     100
## ServiceRestart: jenkins
#
# Maximum number of HTTP worker threads.
#
JENKINS_HANDLER_MAX="100"


## Type:        integer
## Default:     20
## ServiceRestart: jenkins
#
# Maximum number of idle HTTP worker threads.
#
JENKINS_HANDLER_IDLE="20"


## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS=""
复制代码
(3.3)/var/lib/jenkins/:默认的JENKINS_HOME。目录结构如下:
复制代码
$ cd /var/lib/jenkins/
$ ls -lst
total 216
4 -rw-r--r--   1 jenkins jenkins    0 Mar 18 23:59 Fingerprint cleanup.log
4 -rw-r--r--   1 jenkins jenkins    0 Mar 18 18:54 Workspace clean-up.log
8 drwxr-xr-x 180 jenkins jenkins 4096 Mar 18 17:04 fingerprints
8 -rw-r--r--   1 jenkins jenkins 1636 Mar 18 16:41 config.xml
8 -rw-r--r--   1 jenkins jenkins  903 Mar 18 16:41 hudson.maven.MavenModuleSet.xml
8 -rw-r--r--   1 jenkins jenkins 1122 Mar 18 16:41 hudson.plugins.sonar.SonarPublisher.xml
8 -rw-r--r--   1 jenkins jenkins  205 Mar 18 16:41 hudson.plugins.sonar.SonarRunnerInstallation.xml
8 -rw-r--r--   1 jenkins jenkins  196 Mar 18 16:41 hudson.scm.CVSSCM.xml
8 -rw-r--r--   1 jenkins jenkins  692 Mar 18 16:41 hudson.scm.SubversionSCM.xml
8 -rw-r--r--   1 jenkins jenkins  145 Mar 18 16:41 hudson.tasks.Ant.xml
8 -rw-r--r--   1 jenkins jenkins  187 Mar 18 16:41 hudson.tasks.Mailer.xml
8 -rw-r--r--   1 jenkins jenkins  330 Mar 18 16:41 hudson.tasks.Maven.xml
8 -rw-r--r--   1 jenkins jenkins   76 Mar 18 16:41 hudson.tasks.Shell.xml
8 -rw-r--r--   1 jenkins jenkins  215 Mar 18 16:41 hudson.triggers.SCMTrigger.xml
8 -rw-r--r--   1 jenkins jenkins  264 Mar 18 16:41 jenkins.model.JenkinsLocationConfiguration.xml
8 -rw-r--r--   1 jenkins jenkins  907 Mar 18 16:29 nodeMonitors.xml
8 -rw-r--r--   1 jenkins jenkins  159 Mar 18 16:29 hudson.model.UpdateCenter.xml
8 -rw-r--r--   1 jenkins jenkins   46 Mar 18 16:29 queue.xml.bak
8 drwxr-xr-x   2 jenkins jenkins 4096 Mar 18 16:24 updates
4 -rw-r--r--   1 jenkins jenkins    0 Mar 16 10:27 Connection Activity monitoring to slaves.log
8 drwxr-xr-x   6 jenkins jenkins 4096 Mar 13 18:24 workspace
8 drwxr-xr-x  13 jenkins jenkins 4096 Mar 13 17:59 jobs
8 drwx------   2 jenkins jenkins 4096 Feb 28 11:16 secrets
8 -rw-r--r--   1 jenkins jenkins  165 Feb 27 13:29 sonar.xml
8 drwxr-xr-x  14 jenkins jenkins 4096 Feb 27 13:29 plugins
8 -rw-------   1 jenkins jenkins 1679 Feb 27 12:12 identity.key
8 drwxr-xr-x   2 jenkins jenkins 4096 Feb 27 12:12 userContent
8 -rw-r--r--   1 jenkins jenkins   64 Feb 27 12:12 secret.key
4 -rw-r--r--   1 jenkins jenkins    0 Feb 27 12:12 secret.key.not-so-secret
(3.4)/var/log/jenkins/jenkins.log:Jenkins日志文件。
4. 启动Jenkins
$ sudo service jenkins start
有可能出现错误:“Starting Jenkins -bash: /usr/bin/java: No such file or directory”。表示找不到Jenkins找不到java。
这时就需要“vi /etc/init.d/jenkins”,把java路径加上(如下):
复制代码
64 # Search usable Java. We do this because various reports indicated
65 # that /usr/bin/java may not always point to Java 1.5
66 # see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
67 for candidate in /etc/alternatives/java /usr/lib/jvm/java-1.6.0/bin/java /usr/lib/jvm/jre-1.6.0/bin/java /usr/lib/jvm/java-1 .5.0/bin/java /usr/lib/jvm/jre-1.5.0/bin/java  /opt/app/jdk1.7.0_09/bin/java

68 do
69 [ -x "$JENKINS_JAVA_CMD" ] && break
70 JENKINS_JAVA_CMD="$candidate"
71 done

 5. 登录Jenkins
如果没有特别配置端口,使用http://<ip address>:8080/登录Jenkins,并进行相关配置(插件安装、权限配置、View/Job创建等等)。


然后登录jenkins进行插件的下载与配置


点击新建项目
输入item name  选择构建一个maven项目  然后点击OK
接下来在源码管理里面选择  自己的管理工具我用的是subversion
然后在 Repository URL 里面输入svn的地址并在  Credentials 添加svn账号和密码
然后在build里面设置   Root POM   我的设置为3ctv-parent/pom.xml设置父项目的pom文件
然后设置   Goals and options   我用的是clean  install


然后选择 增加构建后参作步骤   send build actifacts over ssh
选择要部署到的服务器  
Source files  设置为3ctv-activity/dist/activity.war   (自己设置的打包到dist目录下面)
然后remove  prefix  3ctv-activity/dist/
然后执行远程命令   /home/hezt/publish.sh activity 8080 /tomcat/tomcat_8080   activity指的是项目名称    8080值得是端口号   /tomcat/tomcat_8080指的是tomcat的绝对路径
publish.sh要赋权限
然后点击保存


publish.sh内容


#!/bin/bash
TOMCAT_HOME=/tomcat/tomcat_8080   设置TOMCAT_HOME   默认为/tomcat/tomcat_8080
TOMCAT_PORT=8080                  设置默认端口  8080
PROJECT=api                       设置默认项目名称  api
echo $TOMCAT_HOME
if [ $# -lt 1 ]; then             如果不满足这个格式的话直接退出
  echo "you must use like this : ./publish.sh <projectname> [tomcat port] [tomcat home dir]"    
  exit    
fi
if [ $1 != "" ]; then     把传进来的值替换默认值
   PROJECT=$1
fi   
if [ $2 != "" ]; then  
   TOMCAT_PORT=$2  
fi  
if [ $3 != "" ]; then  
   TOMCAT_HOME=$3  
fi
$TOMCAT_HOME/bin/shutdown.sh                    先关闭tomcat
echo 'tomcat shutdown'
tomcat_pid=`/usr/sbin/lsof -n -P -t -i:$TOMCAT_PORT`    获得该tomcat的pid
echo "current:1"$tomcat_pid"2"
while [[ -n $tomcat_pid ]]             判断pid时候存在
do
 sleep 5                               如果存在的话暂停5秒接着判断   (逻辑不严禁,如果一直停不掉应该kill  该id,暂时保留)
 tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`
 echo "scan tomcat pid :" $tomcat_pid
done
echo "scan no tomcat pid," $PROJECT "publishing"
rm -rf $TOMCAT_HOME/webapps/$PROJECT*           先删除该项目解压的包
cp /home/hezt/war/$PROJECT*.war $TOMCAT_HOME/webapps/$PROJECT.war        把自动化打包过来的包复制到该tomcat下面并重命名为project
BAK_DIR=/home/hezt/bak/$PROJECT/`date +%Y%m%d`                           创建备份目录
mkdir -p $BAK_DIR
cp $TOMCAT_HOME/webapps/$PROJECT.war $BAK_DIR/$PROJECT"_"`date +%H%M%S`.war     把旧的包进行备份
rm -rf /home/hezt/war/$PROJECT*.war                                       删除自动化打包过来的包
$TOMCAT_HOME/bin/startup.sh                                              重新启动tomcat
echo "tomcat is starting,please try to access $PROJECT conslone url"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值