温馨提示×

Ubuntu上WebLogic的部署自动化方法是什么

小樊
31
2025-12-06 19:28:54
栏目: 智能运维

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.rsporaInst.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.logElasticsearch,Kibana 检索与可视化;
  • 告警:对 GC 时间、线程池饱和、请求错误率、磁盘/内存阈值 配置告警策略。

0