创建自定义 Tomcat 服务器层 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建自定义 Tomcat 服务器层

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

注意

本主题介绍如何为 Linux 堆栈实施自定义层。但是,也可以修改基本原则和某些代码来为 Windows 堆栈实施自定义层,尤其是应用程序部署上的部分中的 Windows 堆栈。

在上使用非标准软件包的最简单方法 AWS OpsWorks Stacks 实例用于扩展现有层。但是,这种方法会在该层的实例上同时安装并运行标准和非标准程序包,通常不需要这么做。一种要求更高但更有效的方法是实施自定义层,这使您几乎可以完全控制该层的实例,其中包括以下内容:

  • 安装哪些程序包

  • 如何配置每个程序包

  • 如何将应用程序从存储库部署到实例

无论是使用控制台还是API,您都可以像创建和管理任何其他层一样创建和管理自定义层,如中所述自定义层。但是,自定义层的内置配方仅执行一些非常基本的任务,如安装 Ganglia 客户端以向 Ganglia 主机报告指标。要使自定义层的实例不仅仅局限于最低的正常运行,您必须实施一个或多个包含 Chef 配方和相关文件的自定义说明书,以处理安装和配置程序包、部署应用程序等任务。不过,您没有必要从头开始实施所有内容。例如,如果您将应用程序存储在一个标准存储库中,您可以使用内置部署配方来处理在该层的实例上安装应用程序的大部分工作。

注意

如果您在 Chef 方面是新手,您应当先阅读说明书 101,这是一个教程,旨在介绍关于如何实施说明书以执行各种常见任务的基本知识。

以下演练介绍如何实施可支持 Tomcat 应用程序服务器的自定义层。该层基于一个名为 Tomcat 的自定义说明书,该说明书中包含用于处理程序包安装、部署等任务的配方。本演练包括 Tomcat 说明书的摘录。你可以从其GitHub 存储库中下载完整的食谱。如果您不熟悉 Opscode Chef,您应当先阅读说明书和诀窍

注意

AWS OpsWorks Stacks 包括一个功能齐全的 Java 应用服务器层,供生产使用。Tomcat 食谱的目的是展示如何实现自定义层,因此它仅支持 Tomcat 的有限版本,其中不包含诸如以下的功能。SSL有关功能完备的实施的示例,请参阅内置 opsworks_java 说明书。

Tomcat 说明书支持其实例拥有以下特征的自定义层:

  • 它们支持拥有 Apache 前端的 Tomcat Java 应用程序服务器。

  • Tomcat 配置为允许应用程序使用JDBCDataSource对象连接到单独的 My SQL 实例,该实例用作后端数据存储。

针对这个项目的说明书涉及多个关键组件:

  • 属性文件包含各个配方使用的配置设置。

  • Setup 配方被分配给该层的 Setup 生命周期事件。它们在实例启动后运行,并执行安装程序包和创建配置文件等任务。

  • Configure 配方分配给了该层的 Configure 生命周期事件。它们在堆栈的配置发生更改后 (主要是当实例变为在线或离线状态时) 运行,并处理任何所需的配置更改。

  • Deploy 配方分配给了层的 Deploy 生命周期事件。它们在 Setup 配方之后以及当您手动部署应用程序以在层的实例上安装代码和相关文件并处理相关任务 (如重新启动服务) 之后运行。

最后一节介绍如何创建包含基于 Tomcat cookbook 的自定义层的堆栈,以及如何部署和运行一个简单的JSP应用程序,该应用程序显示来自在属于单独的 My 层的实例上运行的 “我的SQLSQL数据库” 的数据。创建堆栈并运行应用程序

注意

Tomcat 食谱的食谱取决于一些 AWS OpsWorks 堆叠内置食谱。为了明确每个配方的来源,本主题使用 Chef cookbookname::recipename 约定确定配方。