xml配置linux启动脚本,linux中利用Shell脚本实现自动安装部署weblogic服务
身在物流行業(yè),臨近618和雙十一,都需要進行系統(tǒng)壓力測試,今年也不例外。這個時候需要隨時切換自己開發(fā)和壓測的身份,一面要完成新需求的開發(fā)任務(wù),另一面要完成壓測任務(wù);雖然4月剛開始,但是壓測任務(wù)已經(jīng)排上日程。應(yīng)用系統(tǒng)大多部署在weblogic中,每臺虛擬機都需要安裝,每次都需要耗費大量的時間和精力,而且中間某個環(huán)節(jié)出了問題通常會推倒重來;自己在網(wǎng)上搜了很久,發(fā)現(xiàn)并沒有什么現(xiàn)成可用的shell腳本,于是花了一天時間,把整個部署的流程梳理了一遍,自己整出了一個shell腳本,實現(xiàn)了自動安裝配置weblogic,真是省時又省力,磨刀不誤砍柴工,再也不用再敲那么多命令,尤其是cd!!!
寫腳本的過程中,真正體會到了shell的簡單與強大,也對sed、awk和循環(huán)有了更深的認識。
1、安裝weblogic版本:wls1036_linux64
2、具體shell腳本實現(xiàn)
#!/bin/bash
# @author:liusure09
# @date:2018-04-08
###############################################
echo ""
echo ""
echo "**************************************"
echo "* *"
echo "* *"
echo "* WebLogic服務(wù)自動安裝部署 *"
echo "* *"
echo "* *"
echo "**************************************"
echo ""
echo ""
echo "*****安裝時間大約需要25分鐘,請耐心等待*****"
#獲取腳本所在的當前路徑
path_now=$(cd "$(dirname "$0")"; pwd)
echo "腳本執(zhí)行當前路徑為{$path_now}"
#聲明變量:安裝weblogic的路徑
path_weblogic=/home/username/Oracle/Middleware/wlserver_10.3/common/bin
#weblogic啟動文件路徑
path_startWebLogic=/home/username/domains/base_domain/bin
#節(jié)點服務(wù)的啟動腳本路徑
path_node=/home/username/Oracle/Middleware/wlserver_10.3/server/bin
#節(jié)點管理nodemanager.properties文件地址
path_nodepro=/home/username/Oracle/Middleware/wlserver_10.3/common/nodemanager
#upload 文件夾
path_upload=/home/username/upload
echo ""
echo "判斷是否存在upload文件夾,如果不存在則新建upload文件夾"
if [ -d $path_upload ]
then
echo "upload文件夾已經(jīng)創(chuàng)建,不需要重復(fù)創(chuàng)建!"
else
mkdir -p /home/username/upload
echo "upload文件夾創(chuàng)建成功!"
fi
echo ""
echo "創(chuàng)建web/wars路徑,用于應(yīng)用部署"
if [ -d /home/username/web/wars ]
then
echo "web/wars路徑已經(jīng)存在"
else
mkdir -p /home/username/web/wars
echo "web/wars路徑創(chuàng)建成功"
fi
echo ""
echo "1.安裝weblogic服務(wù),默認安裝路徑為:/home/username/Oracle/Middleware"
./wls1036_linux64.bin -mode=silent -silent_xml=silent.xml -log=$path_now/weblogic.out
sleep 2s
echo "1.安裝webloigc服務(wù)完成"
echo "2.配置weblogic域路徑,默認域路徑為:/home/username/domains/basedomain"
cd $path_weblogic
./config.sh -mode=silent -silent_script=$path_now/create_domain.rsp
echo "2.配置weblogic域路徑完成!"
echo "3.添加hibernate映射文件jar包"
cd $path_now
cp antlr-2.7.6rc1.jar /home/username/Oracle/Middleware/wlserver_10.3/server/ext/
sleep 2s
echo "3.添加hibernate映射文件jar包成功!"
echo "4.修改startWebLogic.sh啟動文件,添加jar包引用路徑!"
sed -i '/umask 037/a\PRE_CLASSPATH="${WL_HOME}/server/ext/antlr-2.7.6rc1.jar"\
CLASSPATH="${PRE_CLASSPATH}:${CLASSPATH}"\
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.security.SSL.ignoreHostnameVerification=true"' $path_startWebLogic/startWebLogic.sh
sleep 2s
echo "4.修改startWebLogic.sh啟動文件成功!"
echo "5.啟動節(jié)點服務(wù)"
str="/n"
cd $path_node
nohup ./startNodeManager.sh &
sstr=$(echo -e $str)
sleep 2s
echo "5.啟動節(jié)點服務(wù)完成!"
echo "6.修改nodemanager.properties文件,開啟監(jiān)聽!(nodemanager.properties文件生成時間較久)"
echo "因此寫了一個循環(huán),不出現(xiàn)就一直循環(huán)下去,直到出現(xiàn)這個文件為止"
while [ 0 ];
do
if [ ! -e $path_nodepro/nodemanager.properties ]
then
echo "不存在nodemanager.properties文件,請等待10秒,不要關(guān)閉腳本!"
sleep 10s
else
echo "已經(jīng)生成nodemanager.properties文件,正在修改!"
sed -i 's/SecureListener=true/SecureListener=false/g' $path_nodepro/nodemanager.properties
sed -i 's/StartScriptEnabled=false/StartScriptEnabled=true/g' $path_nodepro/nodemanager.properties
break
fi
done
sleep 2s
echo "6.修改nodemanager.properties文件完成!"
echo "7.注冊管理節(jié)點服務(wù)器"
cd $path_weblogic
./wlst.sh $path_now/wlsttest.py
echo "7.注冊管理節(jié)點服務(wù)器完成!"
echo ""
echo "8.將節(jié)點服務(wù)殺死,并進行重啟"
ID=`ps -ef | grep "weblogic.NodeManager" | grep -v "grep" | awk '{print $2}'`
echo "8.查到的階段服務(wù)進程為:$ID"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo ""
echo "9.重啟節(jié)點服務(wù)"
str1="/n"
cd $path_node
nohup ./startNodeManager.sh &
sstr1=$(echo -e $str1)
sleep 2s
echo "9.節(jié)點服務(wù)已重啟完成!"
echo ""
echo "**********TMS系統(tǒng)weblogc服務(wù)安裝配置結(jié)束!**********"
3、靜默安裝weblogic的silent.xml文件
注意:data-value中不能出現(xiàn)空格回車等其他字符,要一行結(jié)束。
4、創(chuàng)建域的create_domain.rsp文件
read template from "/home/username/Oracle/Middleware/wlserver_10.3/common/templates/domains/wls.jar";
set JavaHome "/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.131.x86_64";
set ServerStartMode "prod"; //生產(chǎn)模式
find Server "AdminServer" as AdminServer;
set AdminServer.ListenAddress "10.1.1.1";
set AdminServer.ListenPort "7001";
set AdminServer.SSL.Enabled "false";
//set AdminServer.SSL.ListenPort "7002";
//We can directly create a new managed server.
//create Server "base" as BASE;
//set BASE.ListenAddress "";
//set BASE.ListenPort "8003";
//set BASE.SSL.Enabled "true";
//set BASE.SSL.ListenPort "8004????
//Create Machine
//create Machine "base" as Machinename;
//use templates default weblogic user
find User "weblogic" as u1;
set u1.password "weblogic123";
write domain to "/home/username/domains/base_domain/"; //創(chuàng)建域
// The domain name will be "demo-domain"
close template;
5、注冊節(jié)點服務(wù)器的文件
connect('weblogic','weblogic123','t3://10.1.1.1:7001')
nmEnroll('/home/username/Oracle/Middleware/wlserver_10.3/common/nodemanager')
nmEnroll('/home/username/domains/base_domain')
exit()
至此weblogic所需要的已經(jīng)部署完畢,感覺所有的東西都可以用shell解決了,哈哈。
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請注明出處 https://blog.csdn.net/liusure09/article/details/79880514
總結(jié)
以上是生活随笔為你收集整理的xml配置linux启动脚本,linux中利用Shell脚本实现自动安装部署weblogic服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux添加vlan不通,如何处理Li
- 下一篇: linux mkfs.ext3 参数,l