本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Configure 配方
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
Configure 配方被分配给层的 Configure 生命周期事件,每当实例进入在线状态或退出在线状态时,堆栈的所有实例上都会发生该事件。您可以使用 Configure 配方来调整实例的配置,以根据需要响应更改。当您实施 Configure 配方时,请记住,堆栈配置更改可能涉及与此层无关的实例。该配方必须能够作出相应的响应,但在某些情况下,可能不需要执行任何操作。
tomcat::configure
tomcat::configure
配方用于执行层的 Configure 生命周期事件。
include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'
tomcat::configure
配方基本上是一个元配方,可运行两个从属配方。
-
tomcat::context
配方可创建一个 Web 应用程序上下文配置文件。此文件配置应用程序用于与 My SQL 实例通信的JDBC资源,如下一节所述。运行此配方以响应 configure 事件使层可以在数据库层发生变化后更新 Web 应用程序上下文配置文件。
-
tomcat::container_config
Setup 配方再次运行,以捕获容器配置中的任何更改。
在本示例中,include
的 tomcat::container_config
被改为注释了。如果要使用自定义JSON来修改 Tomcat 设置,则可以删除评论。之后,Configure 生命周期事件运行 tomcat::container_config
,这会更新 Tomcat 相关配置文件 (如tomcat::container_config中所述) 并重新启动 Tomcat 服务。
tomcat::context
Tomcat cookbook 允许应用程序使用 J DataSource
tomcat::context
配方的主要目的是创建此配置文件。
include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end
除了 Tomcat 食谱属性外,此配方还使用堆栈配置和部署属性 AWS OpsWorks 使用配置事件堆叠安装。这些区域有: AWS OpsWorks Stacks 服务向每个实例的节点对象添加属性,这些属性包含配方通常通过使用数据袋或搜索获得的信息,并将属性安装到每个实例上。这些属性包含关于堆栈配置、部署的应用程序和用户希望包含的任何自定义数据的详细信息。配方可以通过使用标准 Chef 节点语法获取堆栈配置和部署属性的数据。有关更多信息,请参阅 堆栈配置和部署属性。对于 Chef 11.10 堆栈,您还可以使用 Chef 搜索来获取堆栈配置和部署数据。有关更多信息,请参阅 使用 Chef 搜索。
deploy
attributes 是指[:deploy]
命名空间,其中包含与部署相关的属性,这些属性通过控制台定义或API由控制台生成 AWS OpsWorks 堆栈服务。deploy
属性包含各个已部署应用程序的以应用程序短名称命名的一个属性。每个应用程序属性都包含一组用于描述应用程序的特征的属性,如文档根目录 ([:deploy][:
)。appname
][:document_root]
context
配方首先通过调用 tomcat::service 来确保为此 Chef 运行定义了服务。然后,它定义 context_name
变量,该变量表示配置文件的名称,不包括 .xml
扩展名。如果您使用默认文档根目录,则 context_name
将被设置为应用程序的短名称。否则,它将被设置为指定的文档根目录。中讨论的示例将文档根目录创建堆栈并运行应用程序设置为"ROOT"
,因此上下文为ROOT,配置文件已命名ROOT.xml
。
批量配方查看部署的应用程序的列表,并为每个应用程序使用 webapp_context.xml.erb
模板来创建上下文配置文件。此示例仅部署一个应用程序,但 deploy
属性的定义需要您将其看作一组应用程序。
webapp_context.xml.erb
模板不是特定于操作系统的,因此它位于 templates
目录中的 default
子目录中。
该配方创建配置文件,如下所示:
-
使用默认属性值时,配置文件名称设置为
,并安装在context_name
.xml/etc/tomcat6/Catalina/localhost/
目录中。堆栈配置属性中的
['datasources']
节点包含一个或多个属性,每个属性都将上下文名称映射到关联应用程序用于与数据库通信JDBC的数据资源。创建堆栈JSON时,节点及其内容是使用自定义定义的,如后面所述创建堆栈并运行应用程序。该示例只有一个属性,该属性将ROOT上下文名称与名为 jdbc/myd JDBC b 的资源相关联。 -
通过使用默认属性值,文件的用户和组均被设置为由 Tomcat 程序包定义的值:
tomcat
(Amazon Linux) 或tomcat6
(Ubuntu)。 -
template
资源仅在存在['datasources']
节点时创建配置文件,并且包含context_name
属性。 -
template
资源会定义两个变量:resource_name
和webapp_name
。resource_name
被设置为与context_name
相关联的资源名称,而webapp_name
被设置为应用程序的短名称。 -
template 资源可重新启动 Tomcat 服务以加载并激活更改。
webapp_context.xml.erb
模板包含一个 Context
元素,该元素包含一个具有其自己的一组属性的 Resource
元素。
这些 Resource
属性描述上下文配置的特征:
-
nam e — JDBC 资源名称,设置为中定义的
resource_name
值tomcat::context
。例如,资源名称设置为 jdbc/mydb。
-
身份验证和类型-这些是连接的标准设置。JDBC
DataSource
-
maxActivemaxIdle、和 maxWait-活动和空闲连接的最大数量,以及返回连接的最大等待时间。
-
username 和 password 数据库的用户名和根密码,这些从
deploy
属性中获得。 -
driverClassName— JDBC 驱动程序的类名,设置为 “我的SQL驱动程序”。
-
url —连接URL。
前缀取决于数据库。
jdbc:mysql
对于 “我的” SQL、jdbc:postgresql
“Postgres” 和 “服务器”,应将其设置jdbc:sqlserver
为。SQL该示例将设置URL为jdbc:mysql://
,其中host_IP_Address
:3306:simplejspsimplejsp
是应用程序的简称。 -
f actory —
DataSource
工厂,这是我的SQL数据库所必需的。
有关此配置文件的更多信息,请参阅 Tomcat wiki 的 “使用