本發(fā)明涉及WebLogic、Shell、FreeMarker技術(shù)領(lǐng)域,具體涉及一種WebLogic集群的自動(dòng)部署方案,實(shí)現(xiàn)了WebLogic集群的一鍵安裝自動(dòng)化智能部署,在大大節(jié)省部署成本的同時(shí),可以接入并兼容市面上各類(lèi)應(yīng)用引擎設(shè)計(jì),將復(fù)雜繁瑣的WebLogic集群部署簡(jiǎn)單化,系統(tǒng)化,規(guī)范化。
背景技術(shù):
WebLogic是美國(guó)Oracle公司出品的一個(gè)Application server,確切的說(shuō)是一個(gè)基于JAVAEE架構(gòu)的中間件,WebLogic是用于開(kāi)發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫(kù)應(yīng)用的Java應(yīng)用服務(wù)器。將Java的動(dòng)態(tài)功能和Java Enterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開(kāi)發(fā)、集成、部署和管理之中。WebLogic Server簡(jiǎn)化了可移植及可擴(kuò)展的應(yīng)用系統(tǒng)的開(kāi)發(fā),并為其它應(yīng)用系統(tǒng)和系統(tǒng)提供了豐富的互操作性。憑借其出色的群集技術(shù),WebLogic Server擁有最高水平的可擴(kuò)展性和可用性。
WebLogic Server Domain(域)是一個(gè)邏輯的管理單元,一個(gè)Oracle WebLogic Server域是多個(gè)Java組件的邏輯相關(guān)組。Domain是WebLogic中最大的概念,一個(gè)域下面包含著WebLogic應(yīng)用服務(wù)器中的所有東西,WebLogic應(yīng)用服務(wù)器的啟動(dòng),停止都是以domain為單位進(jìn)行管理的。域是由單個(gè)管理服務(wù)器管理的WebLogic Server實(shí)例的集合。
一個(gè)WebLogic domain包含了一個(gè)特定WebLogic服務(wù)器實(shí)例:Administration Server,Administration Server是整個(gè)domain的配置以及管理所有資源的中心點(diǎn)。通常情況下,還會(huì)在這個(gè)domain中通過(guò)配置來(lái)擴(kuò)展出其他的WebLogic服務(wù)器實(shí)例,擴(kuò)展出來(lái)的服務(wù)器實(shí)例叫做Managed Server。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是:本發(fā)明針對(duì)以上問(wèn)題,提供一種WebLogic集群的自動(dòng)部署方案,通過(guò)create_domain.rsp配置文件完成WebLogic中最關(guān)鍵的域創(chuàng)建工作,結(jié)合Shell腳本,完成集群創(chuàng)建的命令執(zhí)行過(guò)程,在大大節(jié)省部署成本的同時(shí),可以接入并兼容市面上各類(lèi)應(yīng)用引擎設(shè)計(jì),將復(fù)雜繁瑣的WebLogic集群部署簡(jiǎn)單化,系統(tǒng)化,規(guī)范化大大節(jié)約了運(yùn)維成本、人員成本,縮短了部署的周期。
本發(fā)明所采用的技術(shù)方案為:
一種WebLogic集群的自動(dòng)部署方案,所述方案通過(guò)構(gòu)建rsp配置文件完成WebLogic中域創(chuàng)建工作,結(jié)合Shell腳本,完成集群創(chuàng)建的命令執(zhí)行過(guò)程。
所述方案采用WebLogic集群模式,集群由兩類(lèi)節(jié)點(diǎn)組組成,其中一類(lèi)節(jié)點(diǎn)組安裝AdminServer、ProxyServer、HealthMonitor三種組件,完成WebLogic集群管理節(jié)點(diǎn)建立;另一類(lèi)節(jié)點(diǎn)組為發(fā)布應(yīng)用而設(shè)置,僅安裝ManageServer組件。
所述方法實(shí)現(xiàn)步驟如下:
1)安裝JDK環(huán)境,解壓WebLogic安裝包,配置MW_HOME;
2)執(zhí)行configure.sh和setWLSEnv.sh腳本,完成環(huán)境配置;
3)優(yōu)化內(nèi)存;
4)通過(guò)create_domain.rsp配置文件,完成域的創(chuàng)建;
5)增加JVM,將用戶名和密碼寫(xiě)入啟動(dòng)腳本,啟動(dòng)WebLogic。
所述WebLogic啟動(dòng)順序?yàn)锳dminServer、ProxyServer、ManageServer。
AdminServer和ManageServer采用不同的配置文件,共同完成集群的創(chuàng)建。
AdminServer和ManageServer采用不同啟動(dòng)腳本。
rsp配置文件中變量采用FreeMarker語(yǔ)言完成。
本發(fā)明的有益效果為:
本發(fā)明能很好的實(shí)現(xiàn)WebLogic集群的自動(dòng)化部署,解決WebLogic安裝的繁瑣配置過(guò)程,并通過(guò)性能優(yōu)化,加快集群的創(chuàng)建啟動(dòng)。通過(guò)本方案的實(shí)施,使WebLogic應(yīng)用引擎部署更加容易、更加智能化,大大節(jié)省了部署的成本,操作簡(jiǎn)單,易用性,通用性都得到保證。因此,極具推廣價(jià)值。
附圖說(shuō)明
圖1為WebLogic集群結(jié)構(gòu)示意圖;
圖2為WebLogic集群自動(dòng)部署流程示意圖。
具體實(shí)施方式
根據(jù)說(shuō)明書(shū)附圖,結(jié)合具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說(shuō)明:
實(shí)施例1:
一種WebLogic集群的自動(dòng)部署方案,所述方案通過(guò)構(gòu)建rsp配置文件(create_domain.rsp)完成WebLogic中最關(guān)鍵的域創(chuàng)建工作,結(jié)合Shell腳本,完成集群創(chuàng)建的命令執(zhí)行過(guò)程。
實(shí)施例2
如圖1所示,在實(shí)施例1的基礎(chǔ),本實(shí)施例所述方案采用WebLogic集群模式,集群由兩類(lèi)節(jié)點(diǎn)組組成,其中一類(lèi)節(jié)點(diǎn)組安裝AdminServer、ProxyServer、HealthMonitor三種組件,完成WebLogic集群管理節(jié)點(diǎn)建立,通過(guò)ProxyServer完成集群代理訪問(wèn),負(fù)載均衡,Session(會(huì)話)共享等,提高并發(fā)訪問(wèn)能力;另一類(lèi)節(jié)點(diǎn)組為發(fā)布應(yīng)用而設(shè)置,僅安裝ManageServer組件,可結(jié)合彈性伸縮完成業(yè)務(wù)增長(zhǎng)所需。
實(shí)施例3
如圖2所示,在實(shí)施例2的基礎(chǔ),本實(shí)施例所述方法實(shí)現(xiàn)步驟如下:
1)安裝JDK環(huán)境,解壓WebLogic安裝包,配置MW_HOME;
采用WebLogic10.3.6安裝包,關(guān)鍵代碼如下:
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)執(zhí)行configure.sh和setWLSEnv.sh腳本,完成環(huán)境配置;
cd/opt/WebLogic/mywls
./configure.sh&
cd/opt/WebLogic/mywls/wlserver/server/bin/
../setWLSEnv.sh&
3)優(yōu)化內(nèi)存,便于創(chuàng)建域,提高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)通過(guò)create_domain.rsp配置文件,完成域的創(chuàng)建;
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?。絥ode.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,將用戶名和密碼寫(xiě)入啟動(dòng)腳本,啟動(dòng)WebLogic,包括AdminServer、ProxyServer和ManageServer。
JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫(xiě),JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。
增加JVM的關(guān)鍵代碼如下:
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&
實(shí)施例4
在實(shí)施例2或3的基礎(chǔ),本實(shí)施例所述WebLogic啟動(dòng)順序?yàn)锳dminServer、ProxyServer、ManageServer。
AdminServer中的啟動(dòng)方式如下:
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中的啟動(dòng)方式如下:
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
實(shí)施例5
在實(shí)施例4的基礎(chǔ),本實(shí)施例AdminServer和ManageServer采用不同的配置文件,共同完成集群的創(chuàng)建。
實(shí)施例6
在實(shí)施例5的基礎(chǔ),本實(shí)施例AdminServer和ManageServer采用不同啟動(dòng)腳本。
實(shí)施例7
在實(shí)施例6的基礎(chǔ),本實(shí)施例rsp配置文件中變量采用FreeMarker語(yǔ)言完成。
實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專(zhuān)利保護(hù)范圍應(yīng)由權(quán)利要求限定。