首页 > 代码库 > 利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(三)(网内首发超详细版)

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(三)(网内首发超详细版)

3.3 权限配置样例

注意:

* 权限配置文件中出现的用户名必须已在用户配置文件中定义。

* 对权限配置文件的修改立即生效,不必重启svn。

用户组格式:

[groups]

= ,

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

其中,方框号内部分可以有多种写法:

[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/data/svndata,[/]就是表示对全部版本库设置权限。

[repos:/] 表示对版本库repos设置权限

[repos2:/abc] 表示对版本库repos2中的abc项目设置权限

[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。

权限可以是w、r、wr和空,空表示没有任何权限。

示例:

[groups]

admin = alan

[/]

@admin = rw

[repos1:/abc/aaa]

king = rw

[repos2:/pass]

king =

3.4 启动SVN服务器

默认端口3690方式启动:

svnserve -d -r /data/svndata/

指定其他端口方式启动:

su - svn -c "/usr/local/svn/bin/svnserve -d --listen-port 6666 -r /data/svndata"

说明:-d指定以后台守护进程方式启动,-r指定版本库根目录

3.5 访问方式

svn://{your-server-ip}:8888/apps

svn://{your-server-ip}:8888/aizhouyou

3.6 开启火墙SVN端口

开启防火墙SVN端口(非必须,如果没开防火墙不必)

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT

保存防火墙设置

/etc/rc.d/init.d/iptables save

对于单个代码仓库启动命令:

svnserve -d -r /data/svndata/www --listen-host 192.168.10.88 --listen-port 9999

说明:

-d 表示在后台运行,

-r 指定服务器的根目录,

这样访问服务器时就可以直接用svn://服务器ip 来访问了。

对于多个代码仓库:

通过 -r 开放 SVN 的根目录,

svnserve -d -r /var/svn/ --listen-host 192.168.10.88--listen-port 9999

客户端访问时再指定仓库目录即可访问 如: svn://192.168.10.88:9999/www 来分别访问每个项目

4 yum方式快速部署apache和svn

yum install httpd

yum install httpd-devel        //用于开发Apache模块

yum install subversion

yum install mod_dav_svn       //Subversion与Apache之间的接口(通过它,Apache就可以访问版本库,可以让客户端也使用HTTP的扩展协议 WebDAV/DeltaV进行访问)

验证svn模块(mod_dav_svn)是否正确安装

ls /etc/httpd/modules | grep svn

系统提示:

mod_authz_svn.so

mod_dav_svn.so

验证安装:

svn --version

其他配置请参考23章节

5 Jenkins部署方法

5.1 Jenkins部署方法一

部署tomcat环境

tar -xzvf apache-tomcat-7.0.53.tar.gz –C /usr/local/

mv /usr/local/apache-tomcat-7.0.53 /usr/local/tomcat

安装JDK

chmod 755jdk-6u20-linux-x64-rpm.bin

./jdk-6u20-linux-x64-rpm.bin

中间输入一次yes

# ln -sv /usr/java/jdk1.6.0_20 /usr/local/java

创建指向“/usr/java/jdk1.6.0_20”的符号链接“/usr/local/java”

配置环境变量

vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

# . /etc/profile.d/java.sh

简单命令测试

# java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

启动tomcat

# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:  /usr/local/tomcat
Using CATALINA_TMPDIR:  /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH:    /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

部署jenkins

下载地址http://jenkins-ci.org/

mv /data/soft/jenkins.war/usr/local/tomcat/webapps

将jenkins.war文件放入tomcat下的webapps目录下,启动jenkins时,会自动在webapps目录下建立jenkin目录

java -jar jenkins.war
如果报错没有关系不用管

cd /usr/local/tomcat/webapps

# ls
docs examples host-manager jenkins jenkins.war manager ROOT

访问http://192.168.1.20:8080/jenkins/

5.2 Jenkins部署方法

首先保证系统中已经安装了jdk,最好是jdk1.5以上

切换到jenkins.war存放的目录,输入如下命令:

$ java -jar jenkins.war

然后在浏览器中输入http://localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins

部署如下:(JDK安装略)

# java -jar jenkins.war

Running from: /data/soft/jenkins.war

webroot: $user.home/.jenkins

2014-4-11 19:09:03 winstone.Logger logInternal

信息: Beginning extraction from war file

Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins

2014-4-11 19:09:06 winstone.Logger logInternal

信息: HTTP Listener started: port=8080

2014-4-11 19:09:06 winstone.Logger logInternal

信息: Winstone Servlet Engine v0.9.10 running: controlPort=disabled

2014-4-11 19:09:07 jenkins.InitReactorRunner$1 onAttained

信息: Started initialization

2014-4-11 19:09:19 jenkins.InitReactorRunner$1 onAttained

信息: Listed all plugins

2014-4-11 19:09:20 jenkins.InitReactorRunner$1 onAttained

信息: Prepared all plugins

2014-4-11 19:09:20 jenkins.InitReactorRunner$1 onAttained

信息: Started all plugins

2014-4-11 19:09:20 jenkins.InitReactorRunner$1 onAttained

信息: Augmented all extensions

2014-4-11 19:09:20 jenkins.InitReactorRunner$1 onAttained

信息: Loaded all jobs

2014-4-11 19:09:24 org.jenkinsci.main.modules.sshd.SSHD start

信息: Started SSHD at port 48523

2014-4-11 19:09:24 jenkins.InitReactorRunner$1 onAttained

信息: Completed initialization

2014-4-11 19:09:24 hudson.TcpSlaveAgentListener <init>

信息: JNLP slave agent listener started on TCP port 42068

2014-4-11 19:09:25 hudson.WebAppMain$3 run

信息: Jenkins is fully up and running

注意:ctrl+c退出将不能访问,可放后台执行

继续阅读请点击第四部分:http://auskangaroo.blog.51cto.com/740826/1410558

本文出自 “技术改变未来” 博客,请务必保留此出处http://auskangaroo.blog.51cto.com/740826/1410549