本发明涉及WebLogic、Shell、FreeMarker技术领域,具体涉及一种WebLogic集群的自动部署方案,实现了WebLogic集群的一键安装自动化智能部署,在大大节省部署成本的同时,可以接入并兼容市面上各类应用引擎设计,将复杂繁琐的WebLogic集群部署简单化,系统化,规范化。
背景技术:
WebLogic是美国Oracle公司出品的一个Application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。WebLogic Server简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操作性。凭借其出色的群集技术,WebLogic Server拥有最高水平的可扩展性和可用性。
WebLogic Server Domain(域)是一个逻辑的管理单元,一个Oracle WebLogic Server域是多个Java组件的逻辑相关组。Domain是WebLogic中最大的概念,一个域下面包含着WebLogic应用服务器中的所有东西,WebLogic应用服务器的启动,停止都是以domain为单位进行管理的。域是由单个管理服务器管理的WebLogic Server实例的集合。
一个WebLogic domain包含了一个特定WebLogic服务器实例:Administration Server,Administration Server是整个domain的配置以及管理所有资源的中心点。通常情况下,还会在这个domain中通过配置来扩展出其他的WebLogic服务器实例,扩展出来的服务器实例叫做Managed Server。
技术实现要素:
本发明要解决的技术问题是:本发明针对以上问题,提供一种WebLogic集群的自动部署方案,通过create_domain.rsp配置文件完成WebLogic中最关键的域创建工作,结合Shell脚本,完成集群创建的命令执行过程,在大大节省部署成本的同时,可以接入并兼容市面上各类应用引擎设计,将复杂繁琐的WebLogic集群部署简单化,系统化,规范化大大节约了运维成本、人员成本,缩短了部署的周期。
本发明所采用的技术方案为:
一种WebLogic集群的自动部署方案,所述方案通过构建rsp配置文件完成WebLogic中域创建工作,结合Shell脚本,完成集群创建的命令执行过程。
所述方案采用WebLogic集群模式,集群由两类节点组组成,其中一类节点组安装AdminServer、ProxyServer、HealthMonitor三种组件,完成WebLogic集群管理节点建立;另一类节点组为发布应用而设置,仅安装ManageServer组件。
所述方法实现步骤如下:
1)安装JDK环境,解压WebLogic安装包,配置MW_HOME;
2)执行configure.sh和setWLSEnv.sh脚本,完成环境配置;
3)优化内存;
4)通过create_domain.rsp配置文件,完成域的创建;
5)增加JVM,将用户名和密码写入启动脚本,启动WebLogic。
所述WebLogic启动顺序为AdminServer、ProxyServer、ManageServer。
AdminServer和ManageServer采用不同的配置文件,共同完成集群的创建。
AdminServer和ManageServer采用不同启动脚本。
rsp配置文件中变量采用FreeMarker语言完成。
本发明的有益效果为:
本发明能很好的实现WebLogic集群的自动化部署,解决WebLogic安装的繁琐配置过程,并通过性能优化,加快集群的创建启动。通过本方案的实施,使WebLogic应用引擎部署更加容易、更加智能化,大大节省了部署的成本,操作简单,易用性,通用性都得到保证。因此,极具推广价值。
附图说明
图1为WebLogic集群结构示意图;
图2为WebLogic集群自动部署流程示意图。
具体实施方式
根据说明书附图,结合具体实施方式对本发明进一步说明:
实施例1:
一种WebLogic集群的自动部署方案,所述方案通过构建rsp配置文件(create_domain.rsp)完成WebLogic中最关键的域创建工作,结合Shell脚本,完成集群创建的命令执行过程。
实施例2
如图1所示,在实施例1的基础,本实施例所述方案采用WebLogic集群模式,集群由两类节点组组成,其中一类节点组安装AdminServer、ProxyServer、HealthMonitor三种组件,完成WebLogic集群管理节点建立,通过ProxyServer完成集群代理访问,负载均衡,Session(会话)共享等,提高并发访问能力;另一类节点组为发布应用而设置,仅安装ManageServer组件,可结合弹性伸缩完成业务增长所需。
实施例3
如图2所示,在实施例2的基础,本实施例所述方法实现步骤如下:
1)安装JDK环境,解压WebLogic安装包,配置MW_HOME;
采用WebLogic10.3.6安装包,关键代码如下:
mkdir/opt/WebLogic
mkdir/opt/WebLogic/mywls
unzip wls1036_dev.zip-d/opt/WebLogic/mywls
echo'
export MW_HOME=/opt/WebLogic/mywls
'>>/etc/profile
source/etc/profile
2)执行configure.sh和setWLSEnv.sh脚本,完成环境配置;
cd/opt/WebLogic/mywls
./configure.sh&
cd/opt/WebLogic/mywls/wlserver/server/bin/
../setWLSEnv.sh&
3)优化内存,便于创建域,提高WebLogic集群性能;
cd/opt/jdk1.7.0_67/jre/lib/security/
mv java.security java.security.bak
cat java.security.bak|sed"s/^securerandom.source=.*/securerandom.source=file:/dev/./urandom/g">java.security
4)通过create_domain.rsp配置文件,完成域的创建;
AdminServer中的rsp文件如下:
read template from"/opt/WebLogic/mywls/wlserver/common/templates/domains/wls.jar";
set JavaHome"/opt/jdk1.7.0_67";
set ServerStartMode"dev";
find Server"AdminServer"as AdminServer;
set AdminServer.ListenAddress"${node.floatingIp}";
set AdminServer.ListenPort"7001";
<#list instance.ngs as nodeGroupEntity>
<#list nodeGroupEntity.nodeEntites as nodeEntity>
<#if(nodeEntity.floatingIp!=node.floatingIp)>
<#list nodeEntity.hostname?split("-")as hostname>
<#if!hostname_has_next>
create Server"${nodeEntity.hostname}"as MS${hostname};
set MS${hostname}.ListenAddress"${nodeEntity.floatingIp}";
set MS${hostname}.ListenPort"7002";
</#if>
</#list>
</#if>
</#list>
</#list>
create Server"proxySever"as MSP;
set MSP.ListenAddress"${node.floatingIp}";
set MSP.ListenPort"8080";
create Cluster"MyCluster"as mycluster;
<#if coms.ManagedServer.hostnames??>
<#list coms.ManagedServer.hostnames as hostname>
<#if hostname??>
assign Server"${hostname}"to Cluster"MyCluster";
</#if>
</#list>
</#if>
set mycluster.ProxyServer"proxySever";
create Machine"iop.com"as Machinename;
find User"WebLogic"as u1;
set u1.password"${instance.confs.password}";
write domain to"/opt/WebLogic/domain";
close template;
ManagedServer中的rsp文件如下:
read template from"/opt/WebLogic/mywls/wlserver/common/templates/domains/wls.jar";
set JavaHome"/opt/jdk1.7.0_67";
set ServerStartMode"dev";
find Server"AdminServer"as AdminServer;
set AdminServer.ListenAddress"${node.floatingIp}";
set AdminServer.ListenPort"7001";
<#list node.hostname?split("-")as hostname>
<#if!hostname_has_next>
create Server"${node.hostname}"as MS${hostname};
set MS${hostname}.ListenAddress"${node.floatingIp}";
set MS${hostname}.ListenPort"7002";
</#if>
</#list>
find User"WebLogic"as u1;
set u1.password"${instance.confs.password}";
write domain to"/opt/WebLogic/domain";
close template;
5)增加JVM,将用户名和密码写入启动脚本,启动WebLogic,包括AdminServer、ProxyServer和ManageServer。
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
增加JVM的关键代码如下:
cd/opt/WebLogic/domain/bin
mv setDomainEnv.sh setDomainEnv.sh.bak
cat setDomainEnv.sh.bak|sed"s/WLS_MEM_ARGS_64BIT=.*/WLS_MEM_ARGS_64BIT=\"-Xms512m-Xmx1024m\"/g"|sed"s/WLS_MEM_ARGS_32BIT=.*/WLS_MEM_ARGS_32BIT=\"-Xms512m-Xmx1024m\"/g">setDomainEnv.sh
${node.hostname}http://${coms.AdminServer.ips[0]}:7001&
实施例4
在实施例2或3的基础,本实施例所述WebLogic启动顺序为AdminServer、ProxyServer、ManageServer。
AdminServer中的启动方式如下:
cd/opt/WebLogic/domain/bin
./startWebLogic.sh&
mv startManagedWebLogic.sh startManagedWebLogic.sh.bak
cat startManagedWebLogic.sh.bak|sed"s/WLS_USER=.*/WLS_USER=\"WebLogic\"/g"|sed"s/WLS_PW=.*/WLS_PW=\"${instance.confs.password}\"/g">startManagedWebLogic.sh
chmod 750startManagedWebLogic.sh
./startManagedWebLogic.sh proxySever http://${node.floatingIp}:7001&
ManagedServer中的启动方式如下:
cd/opt/WebLogic/domain/bin
mv startManagedWebLogic.sh startManagedWebLogic.sh.bak
cat startManagedWebLogic.sh.bak|sed"s/WLS_USER=.*/WLS_USER=\"WebLogic\"/g"|sed"s/WLS_PW=.*/WLS_PW=\"${instance.confs.password}\"/g">startManagedWebLogic.sh
chmod 750startManagedWebLogic.sh
./startManagedWebLogic.sh
实施例5
在实施例4的基础,本实施例AdminServer和ManageServer采用不同的配置文件,共同完成集群的创建。
实施例6
在实施例5的基础,本实施例AdminServer和ManageServer采用不同启动脚本。
实施例7
在实施例6的基础,本实施例rsp配置文件中变量采用FreeMarker语言完成。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。