构建java环境的自动化构建和部署系列一

 所有系列文章:

  <<构建java环境的自动化构建和部署系列一>>

  <<构建java环境的自动化构建和部署系列二>>

 <<构建java环境的自动化构建和部署系列三>>

 <<构建java环境的自动化构建和部署系列四>>

        前段为了方便公司管理项目的版本控制,和方便开发人员快速的部署项目(公司么有运维人员),搭建了搭建敏捷高效的持续集成管理平台,并且规范了安装部署的规范统一通过Shell来实现一键安装环境.(不过也要淘汰了,BOSS想通过Docker 来实现系统环境的部署)

持续集成管理平台的组成

    持续集成管理平台不只是CI服务器,是一系列软件开发管理工具的组合

1、源码版本管理:Subversion、 Git

2、项目构建工具:Maven、 Ant

3、代码质量管理:Sonar(Checkstyle、 PMD、 FindBugs……)

4、持续集成引擎: Jenkins、

5、应用持续部署:操作系统、 JDK、 Tomcat、 JBoss…

实施持续集成过程中要用到的其他各种工具、各种插件、和Shell脚本…

    总体的平台流程图:下图网上找到,公司的部署架构跟这个类似,所以就没有自己去画了

image.png

本系列的大概章目: 

   (1) Subversion源码版本控制系统的安装

    Subversion + Apache + jsvnadmin

    公司是使用Windows来搭建SVN的,这比Linux方便多了,偷懒了

  (2) Maven私有库和本地库的安装与配置  Nexus + Maven

  (3) Sonar代码质量管控平台的安装与使用配置,

      这个比较坑,在安装的时候插件都不兼容;需要一个个找来组装

   (4) Hudson持续集成引擎的安装与配置

   (5) 自动化部署的实现

  (6) 自动化测试的实现

所有的前提准备:

    JDK 的环境安装(我是1.7的版本)

    Mysql 的安装.

系列一:Subversion + Apache + jsvnadmin

      公司是通过Window来搭建的SVN环境的,关于Windows的搭建,本章不去细说,本章通过Linux环境来搭建源码的控制。建议使用Windows来管理SVN,使用起来比较便捷方便,个人喜欢点;

安装步骤:

   #yum install -y httpd

  安装 apache

    # yum install httpd httpd-devel

    # service httpd start

    # chkconfig httpd on

我的机器有nginx 所以为了防止80端口冲突,改成了81。没有需要的可以不更改,也试过Nginx来实现,但是遇到一些奇葩问题,就采用Apatch了.

   # vi /etc/httpd/conf/httpd.conf

找到 ServerName 并修改成

    Listen 81

    ServerName localhost:81

防火墙中打开 81 端口:

    # vi /etc/sysconfig/iptables

    -A INPUT -m state –state NEW -m tcp -p tcp –dport 81 -j ACCEPT

    # service iptables restart

 访问:http://192.168.1.105:81/ 就可以知道有么有安装成功

 

安装 SVN 服务

   # yum install mod_dav_svn subversion

  必须安装 mod_dav_svn 模块

   安装完 svn 后要重启 apache

   # service httpd restart

查看测试是否安装 svn 模块

# ls /etc/httpd/modules/ | grep svn

# svn –version

创建 svn 库主目录(多库模式,一份配置文件管理多个库)

    # mkdir /svn/

    # vi /etc/httpd/conf.d/subversion.conf 添加以下内容

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn/>
         DAV svn
         SVNListParentPath on
         SVNParentPath /svn
         AuthType Basic
         AuthName "Subversion repositories"
         AuthUserFile /svn/passwd.http
         AuthzSVNAccessFile /svn/authz
         Require valid-user
</Location>
RedirectMatch ^(/svn)$ $1/

创建/svn/passwd.http 和/svn/authz

   # touch /svn/passwd.http

   # touch /svn/authz

重启 apache

    # service httpd restart

 

安装 jsvnadmin

   svnadmin 介绍

(在 Google Code 上,需要 FQ 才能下载。我们也会把最新版的 jsvnadmin 放到群共享中)

     https://code.google.com/p/jsvnadmin/

      https://jsvnadmin.googlecode.com/files/svnadmin-3.0.5.zip

 

将下载的jsvnadmin部署在tomcat;

修改svnadmin/WEB-INF 的jdbc.properties

内容改为如下

db=MySQL
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root
MySQL.jdbc.password=123456

创建 svnadmin 数据库并导入相应数据( UTF-8 编码)

执行 db/mysql5.sql 和 db/lang/en.sql

 

启动tomcat:

浏览器中打开: http://192.168.1.105:9000/svnadmin/

第一次访问需要设置登录用户和密码,登录后的管理界面:

 image.png

创建库

 image.png

此时:

   /svn/目录下会创建一个viemall 的 SVN 库目录。通过下面就会有SVN项目的用户管理文件.

配置库目录权限

# cd /svn

# chown -R apache.apache viemall

# chmod -R 777 viemall

(如创建新库,需要对新建的库目录执行以上两步授权操作)

  否则在客户端提交代码的时候,会出现“SVN提交时:could not begin a transaction”;

关闭 SELinux( Linux 的访问控制)

修改/etc/selinux/config 文件

# vi /etc/selinux/config

将 SELINUX=enforcing 改为SELINUX=disabled

重启机器即可

# reboot

 

SVN 版本管理平台( Subversion+Apache+Jsvnadmin)的使用:

先安装 SVN 管理客户端 TortoiseSVN,方便对 SVN 库的操作和管理

    http://tortoisesvn.net/downloads.html 这个小海龟不多说都懂。

 

接下来可以对 wusc_edu 库进行相应的操作

(1) 用户组

(2) 用户

(3) 授权

(4) 导入项目

 image.png

     http://auskangaroo.blog.51cto.com/740826/1410549

发表评论