在 Debian 上管理多个 WebLogic 实例的实用方案
一 环境准备与目录规划
sudo apt update && sudo apt install -y openjdk-11-jdkjava -versiontar -xzf fmw_14.1.1.0.0_wls_linux64.bin.tar.gzsudo mv fmw_14.1.1.0.0_wls_linux64 /opt/weblogicexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64export WL_HOME=/opt/weblogic/wlserverexport PATH=$JAVA_HOME/bin:$WL_HOME/server/bin:$PATHsource /etc/profile.d/weblogic.sh/opt/weblogic/user_projects/domains/{domain1,domain2,...}/opt/weblogic/user_projects/domains/{domain}/servers/{server}/data/opt/weblogic/user_projects/domains/{domain}/servers/{server}/logs/opt/weblogic/user_projects/domains/{domain}/bin/start.sh|stop.sh二 创建与配置多个实例
$WL_HOME/common/bin/config.shcp -r $WL_HOME/user_projects/domains/base_domain $WL_HOME/user_projects/domains/app1#!/bin/bashexport DOMAIN_HOME=/opt/weblogic/user_projects/domains/app1$DOMAIN_HOME/bin/startWebLogic.sh > $DOMAIN_HOME/servers/AdminServer/logs/start.out 2>&1 &#!/bin/bashexport DOMAIN_HOME=/opt/weblogic/user_projects/domains/app1$DOMAIN_HOME/bin/stopWebLogic.sh > $DOMAIN_HOME/servers/AdminServer/logs/stop.out 2>&1chmod +x $DOMAIN_HOME/bin/*.sh三 使用 Node Manager 集中管理
ListenPort=5556、SecureListener=false(测试环境)、StartScriptEnabled=truenohup $WL_HOME/server/bin/startNodeManager.sh > $WL_HOME/common/nodemanager/nodemanager.out 2>&1 &$WL_HOME/server/bin/startManagedWebLogic.sh app1_ms1 http://<admin_host>:7001$WL_HOME/server/bin/stopManagedWebLogic.sh app1_ms1 http://<admin_host>:7001tail -f $WL_HOME/common/nodemanager/nodemanager.logtail -f $DOMAIN_HOME/servers/app1_ms1/logs/app1_ms1.log四 监控与日常运维
五 systemd 服务化与一键编排
[Unit]Description=WebLogic Managed Server %iAfter=network.target wls-nodemanager.service[Service]Type=forkingUser=weblogicEnvironment="DOMAIN_HOME=/opt/weblogic/user_projects/domains/app1"ExecStart=$DOMAIN_HOME/bin/startManagedWebLogic.sh %i http://127.0.0.1:7001ExecStop=$DOMAIN_HOME/bin/stopManagedWebLogic.sh %i http://127.0.0.1:7001Restart=on-failure[Install]WantedBy=multi-user.target[Unit]Description=WebLogic Node ManagerAfter=network.target[Service]Type=simpleUser=weblogicExecStart=$WL_HOME/server/bin/startNodeManager.shExecStop=/bin/kill -TERM $MAINPIDRestart=always[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl enable --now wls-nodemanager.servicesudo systemctl enable --now wls@app1_ms1.servicesystemctl status wls@*#!/bin/bashdomains=(app1 app2)for d in "${domains[@]}"; do nohup $WL_HOME/server/bin/startWebLogic.sh -Dweblogic.Name=AdminServer -Dweblogic.Domain=$WL_HOME/user_projects/domains/$d > $WL_HOME/user_projects/domains/$d/servers/AdminServer/logs/start.out 2>&1 &done