Ubuntu上WebLogic部署自动化的主流做法
- 静默安装 + WLST 域与应用编排:用 JDK 作为前提,WebLogic 通过 .jar 静默安装,结合 WLST(Jython)脚本创建域、托管服务器、数据源、部署应用,适合可重复、可版本化的交付流水线。
- 配置管理工具编排:用 Ansible(或 Puppet)编排“安装 JDK → 建用户与目录 → 静默安装 WebLogic → 执行 WLST/Shell 脚本 → 启动服务/设置自启”,便于多机一致性与批量执行。
- CI/CD 集成:在 Jenkins/GitLab CI 中分阶段执行“构建 → 上传介质 → 执行 Ansible/Shell → 健康检查(如 /console 登录、应用就绪探针)”,实现一键交付与回滚。
- 集群与高可用:在控制台或通过 WLST 批量创建 集群/托管服务器,前置 负载均衡器(如 Nginx/HAProxy/商用 F5)实现流量分发与健康检查。
- 监控与日志:接入 Prometheus + Grafana(指标可视化)与 ELK(日志收集分析),对 CPU/内存/线程池/请求时延 与 server.log 进行观测与告警。
落地步骤与关键脚本
- 准备介质与用户
- 安装 JDK 8/11(示例:openjdk-11-jdk),创建 weblogic 系统用户与目录,设置 JAVA_HOME/MW_HOME 等环境变量。
- 静默安装 WebLogic
- 准备响应文件 wls.rsp 与 oraInst.loc,执行:
java -jar fmw_12.2.1.3.0_wls.jar -silent -responseFile /opt/wls_file/response/wls.rsp -invPtrLoc /opt/wls_file/response/oraInst.loc
- 静默建域(WLST 或 config.sh)
- 方式 A(WLST,推荐可版本化):
readTemplate(‘${MW_HOME}/wlserver/common/templates/wls/wls.jar’)
set(‘JavaHome’, ‘${JAVA_HOME}’)
find Server ‘AdminServer’ as s
s.set(‘ListenAddress’,‘’)
s.set(‘ListenPort’, 7001)
find User ‘weblogic’ as u
u.setPassword(‘YourStrongPwd’)
writeDomain(‘${MW_HOME}/user_projects/domains/base_domain’)
closeTemplate()
启动:nohup ${DOMAIN_HOME}/bin/startWebLogic.sh &
- 方式 B(config.sh 静默):config.sh -mode=silent -silent_script=create_domain.rsp -logfile=create_domain.log
- 应用部署(WLST)
- 部署命令示例:
deploy(‘app.war’, ‘base_domain’, targets=‘AdminServer’, stageMode=‘stage’)
- 健康检查与自启
- 健康检查:curl -I http://localhost:7001/console 或应用健康检查端点;
- systemd 服务示例(/etc/systemd/system/weblogic.service):
[Unit] Description=WebLogic Server
After=network.target
[Service] Type=simple
User=weblogic
ExecStart=${MW_HOME}/user_projects/domains/base_domain/bin/startWebLogic.sh
ExecStop=${MW_HOME}/user_projects/domains/base_domain/bin/stopWebLogic.sh
Restart=on-failure
[Install] WantedBy=multi-user.target
启用:systemctl daemon-reload && systemctl enable --now weblogic
批量与CI/CD编排示例
- Ansible 编排要点(playbook 片段)
- 安装 JDK、创建用户与目录、分发 wls.rsp/oraInst.loc、执行静默安装、分发并执行 WLST 脚本、启动服务/设置自启;
- 执行:ansible-playbook -i inventory.ini deploy_weblogic.yml。
- 批量脚本能力(可扩展)
- 统一入口脚本支持传参:安装用户/组、JDK 路径、WLS 版本与介质、域/服务器/端口、是否建域、是否打 OPatch/PSU 补丁;
- 自动生成响应文件与域目录、创建 boot.properties 免交互启动、启动 AdminServer 并等待就绪。
- CI/CD 流水线建议
- Stage:Checkout → Build(如 Maven)→ Upload Artifacts → Ansible Deploy → Health Check → Smoke Test → 通知/回滚。
集群与高可用实践
- 在控制台或 WLST 中创建 Cluster,添加 Managed Server,将服务器分配到同一集群;
- 配置 Node Manager 实现受管服务器的启停与自动恢复;
- 前置 负载均衡器(Nginx/HAProxy/商用 LB),开启健康检查与会话保持(如需),验证集群状态与流量分发。
监控与日志建议
- 指标与可视化:使用 Prometheus JMX Exporter 暴露 JVM/线程池/请求 指标,Grafana 做面板与阈值告警;
- 日志与检索:用 Filebeat/Logstash 采集 server.log 到 Elasticsearch,Kibana 检索与可视化;
- 告警:对 GC 时间、线程池饱和、请求错误率、磁盘/内存阈值 配置告警策略。