Jenkins使用经验谈1(一步一步搭建Jenkins环境)
在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下。
我们来一起搭建Jenkins环境。首选你需要安装好JRE/JDK和Tomcat。由于这不是本文的重点,所以关于其安装过程就跳过不谈。
我实验用的服务器操作系统为64位版本的CentOS 5.4,安装JDK 版本为 64位的 1.6.0;安装Tomcat版本为 7.0.14。
题外话,为了解决可能出现的 OutOfMemoryError: PermGen space 问题,需要修改一下$TOMCAT_HOME/bin/catalina.sh 文件,添加一句

JAVA_OPTS="-Xms512m -Xmx768m -XX:MaxNewSize=256m -XX:MaxPermSize=128m"

在Jenkins 官方网站(http://jenkins-ci.org/)下载最新版本war包。拷贝到 $TOMCAT_HOME/webapps 下(不用解压),删除 webapps 下其他目录(当然也可以不用Tomcat直接启动Jenkins,因为他已经内嵌了Jetty)。
现在我们创建一个用于存放所有Jenkins数据的目录,比如 /jenkins。添加环境变量 JENKINS_HOME 到 /etc/profile 中指向这个路径。

export JENKINS_HOME=/jenkins

现在我们可以启动 $TOMCAT_HOME/bin/startup.sh 来启动Jenkins了,但这样每次启动太麻烦,我们把它做成一个服务来启动。
在 /etc/init.d/ 下创建一个 jenkins 文件

# vi /etc/init.d/jenkins

内容如下,如果你希望用指定用户启动,请修改 JENKINS_USER=root 的值,但要记得更改 /jenkins 以及Tomcat 目录的访问权限。另外其他环境变量例如 JAVA_HOME 和 TOMCAT_HOME 要根据你实际JDK和Tomcat的安装目录修改。

#!/bin/sh
#
# Startup script for the Jenkins Continuous Integration server
# (via Jakarta Tomcat Java Servlets and JSP server)
#
# chkconfig: - 85 15
# description: Jakarta Tomcat Java Servlets and JSP server
# processname: tomcat
# pidfile: /var/run/tomcat.pid #!/bin/sh
#
# Startup script for the Jenkins Continuous Integration server
# (via Jakarta Tomcat Java Servlets and JSP server)
#
# chkconfig: - 85 15
# description: Jakarta Tomcat Java Servlets and JSP server
# processname: tomcat
# pidfile: /var/run/tomcat.pid # Set Tomcat environment.
JENKINS_USER=root
LOCKFILE=/var/lock/jenkins
export PATH=/usr/local/bin:$PATH
export HOME=/jenkins
export JAVA_HOME=/usr/local/jdk1.6.0_25
export JENKINS_BASEDIR=/jenkins
export TOMCAT_HOME=/usr/local/tomcat-7.0.14
export CATALINA_PID=$JENKINS_BASEDIR/jenkins-tomcat.pid
export CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true" [ -f $TOMCAT_HOME/bin/catalina.sh ] || exit 0 export PATH=$PATH:/usr/bin:/usr/local/bin # See how we were called.
case "$1" in
start)
# Start daemon.
echo -n "Starting Tomcat: "
su -p -s /bin/sh $JENKINS_USER -c "$TOMCAT_HOME/bin/catalina.sh start"
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch $LOCKFILE
;;
stop)
# Stop daemons.
echo -n "Shutting down Tomcat: "
su -p -s /bin/sh $JENKINS_USER -c "$TOMCAT_HOME/bin/catalina.sh stop"
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f $LOCKFILE
;;
restart)
$0 stop
$0 start
;;
condrestart)
[ -e $LOCKFILE ] && $0 restart
;;
status)
status tomcat
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac exit 0

安装如下命令将Jenkins做成服务启动(以后启动和停止Jenkins也使用 service 命令)。

# chmod a+x /etc/init.d/jenkins
# chkconfig jenkins on
# service jenkins start

现在访问这台服务器 http://172.16.12.80:8080/jenkins/ 可以看到 Jenkins 已经启动了。

我们打算在这台服务器上装个 Nginx 做一下反向代理,为了方便,我选择使用RPM包安装的方式:

# wget http://nginx.org/packages/rhel/5/x86_64/RPMS/nginx-1.0.9-1.el5.ngx.x86_64.rpm
# rpm -ivh nginx-1.0.9-1.el5.ngx.x86_64.rpm

新建一个配置文件 /etc/nginx/conf.d/jenkins.conf 内容如下(注释掉的两行是打印日志用的,一般情况下不用打开):

server {
listen 80;
server_name ci.abc.com;
#access_log /var/log/jenkins_access_log main;
#error_log /var/log/jenkins_error_log debug_http;
client_max_body_size 60M;
client_body_buffer_size 512k;
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

现在启动 Nginx

# service nginx start

我们先修改一下本机的 hosts 文件(C:\Windows\System32\drivers\etc\hosts)添加:

172.16.12.80 ci.abc.com

这次我们在浏览器里输入 http://ci.abc.com/jenkins 可以看到页面了!

到这里基本的Jenkins环境已经搭建好了

一步一步搭建Jenkins环境的更多相关文章

  1. 基于Centos搭建Jenkins 环境搭建

    系统要求: CentOS 7.2 64 位操作系统 安装 Jenkins Jenkins 简介 Jenkins 是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提 ...

  2. 自动化测试全套流程(一)-搭建Jenkins环境

    前提 既然要做自动化测试,那我们就做得彻底一些,将整套系统部署在Linux服务器上,在搭建Jenkins环境之前,我已经通过VirtualBox安装了一个CentOS的服务器,搭建Jenkins是基于 ...

  3. docker中搭建jenkins环境

    想在docker中搭建一个jenkins环境.开始的时候我想在先pull centos,然后在里面自己搭建环境,搭建后的环境可以运行,但是不知道挂载哪的数据,这也是我不熟悉jenkins的原因. 同事 ...

  4. 搭建jenkins环境(linux操作系统)

    一.虚拟机安装 1)  Virtualbox安装 2)  新建镜像(将已有镜像导入) 3)   开通本地远程访问虚拟机的权限 3.1 通过本地的mac地址设置本地连接固定的ip地址.子网掩码.默认网关 ...

  5. Windows系统下搭建Jenkins环境

    1. 安装JDK JDK下载地址:  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  6. 使用tomcat搭建Jenkins环境(centos7.3)

    1.从官网下载最新版本的tomcat下载地址:https://tomcat.apache.org/2.Jenkins 官方网站下载最新版本war包Jenkins官网地址:http://jenkins- ...

  7. 基于Centos 搭建Jenkins环境

    ⒈简介 Jenkins 是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. ⒉Java安装 首先我们需要准备 ...

  8. 持续集成基础-Jenkins(二)-搭建Jenkins环境和配置第一个Job

    安装方式一(直接启动): 1.下载最新的版本(一个 WAR 文件).Jenkins官方网址: http://Jenkins-ci.org/ 2.运行 java -jar jenkins.war(需要运 ...

  9. CentOS7系统下搭建Jenkins环境

    1. 安装JDK yum -y install java 2.安装Ant 添加JPackage源 yum -y install wget wget http://www.jpackage.org/jp ...

随机推荐

  1. SVG裁剪和平移的顺序

    SVG 里为元素添加 clip-path 属性即可做出裁剪效果,添加 transfrom 属性可以平移.旋转元素. 根据需求不同,有两种情况: 先裁剪元素,再把裁剪后的图形平移 先平移元素,再按区域裁 ...

  2. 地址(Address)——统一资源表示(URI)——WCF学习笔记(2)

    统一资源标识(URI) URI:Uniform Resource Identifier(统一资源标识),唯一地标识一个网络资源的同时也表示资源所处的位置的方式(资源访问所用的网络协议). URI结构: ...

  3. web安全之sql注入联合查询

    联合查询的条件: 有显示位.当然要有注入点!! 提前需要了解的函数: union可合并两个或多个select语句的结果集,前提是两个select必有相同列.且各列的数据类型也相同 distinct 去 ...

  4. uva 11582

    #include <iostream> #include <map> #include <cmath> #include <vector> #inclu ...

  5. 【IOI2000】邮局设置问题

    现在连基础DP都要看题解和代码才能写出来了,怎么办嘛QAQ 原题: 一些村庄建在一条笔直的高速公路边上,我们用一条坐标轴来描述这条公路,每个村庄的坐标都是整数,没有两个村庄的坐标相同.两个村庄的距离定 ...

  6. WPA破解原理简要——无线网络破解续

    一.破解密码的基础 关于密码的破解我再重复一次好了.密码破解就两大类方法.一是字典解密,而是暴力解密. 暴力解密就是采用穷举的方法——你密码是怎么组成的呢?无非就是数字.字母.符号,暴力解密就是采用一 ...

  7. 用Sublime Text搭建简易IDE编写Verilog代码

    前言 Verilog是一种硬件描述语言(HDL),该语言在Windows上有集成开发环境可以使用,如ModelSim,但ModelSim的编辑器不太好用因此笔者萌生了用Sublime Text3来编写 ...

  8. mac osx 快捷键符号以及意义 触发角:锁屏

    快捷键中常用符号⌘(command).⌥(option).⇧(shift).⇪(caps lock).⌃(control).↩(return).⌅(enter). OSX快捷键 快捷键中常用符号 ⌘( ...

  9. 【转】Reactor与Proactor两种模式区别

    转自:http://www.cnblogs.com/cbscan/articles/2107494.html 两种IO多路复用方案:Reactor and Proactor 一般情况下,I/O 复用机 ...

  10. 动态加载、移除、替换JS和CSS

    //动态加载一个js/css文件 function loadjscssfile(filename, filetype) { if (filetype == "js") { var ...