本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用自定义模板扩展 OpsWorks 堆栈配置文件
重要
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
注意
由于 OpsWorks Stacks 处理 Windows 堆栈的 Chef 运行方式与 Linux 堆栈不同,因此你不能将本节中讨论的技术用于 Windows 堆栈。
OpsWorks Stacks 使用模板来创建配置文件等文件,这些文件通常依赖于许多设置的属性。如果您使用自定义 JSON 或自定义食谱属性来覆盖 OpsWorks 堆栈定义,则您的首选设置将合并到配置文件中,而不是 OpsWorks 堆栈设置。但是, OpsWorks Stacks 不一定要为所有可能的配置设置指定属性;它接受某些设置的默认值,而直接在模板中对其他设置进行硬编码。如果没有相应的 OpsWorks Stacks 属性,则无法使用自定义 JSON 或自定义食谱属性来指定首选设置。
您可以通过创建自定义模板来扩展配置文件以包含额外的配置设置。随后,您可以向文件添加任何配置设置或其他必需内容,并覆盖任何硬编码的设置。有关模板的更多信息,请参阅模板。
注意
您可以覆盖任何内置模板,但 opsworks-agent.monitrc.erb 除外。
创建自定义模板
-
创建一个具有与内置说明书相同的结构和目录名的说明书。然后,在适当的目录中创建一个与您要自定义的内置模板同名的模板文件。例如,要使用自定义模板扩展 Apache
httpd.conf
配置文件,您必须在存储库中实施apache2
说明书,并且您的模板文件必须为apache2/templates/default/apache.conf.erb
。使用完全相同的名称允许 OpsWorks Stacks 识别自定义模板并使用它来代替内置模板。最简单的方法是将内置模板文件从内置食谱的 GitHub存储库复制到您的食谱
中,然后根据需要进行修改。 重要
请不要复制内置说明书中的任何文件,但要自定义的模板文件除外。复制其他类型的说明书文件 (如配方) 将创建重复的 Chef 资源,并且可能导致错误。
说明书还可以包含自定义属性、配方和相关文件,但其文件名不应与内置文件名重复。
-
自定义模板文件以生成符合您要求的配置文件。您可以添加更多设置、删除现有设置、替换硬编码的属性等。
-
如果您尚未执行此操作,请编辑堆栈设置以启用自定义说明书并指定说明书存储库。有关更多信息,请参阅 安装自定义说明书。
注意
有关此过程的完整演练,请参阅覆盖内置模板。
您无需实现任何配方或在图层配置中添加配方即可覆盖模板。 OpsWorks Stacks 始终运行内置配方。当此堆栈运行创建配置文件的配方时,它将自动使用您的自定义模板,而不是使用内置模板。
注意
如果 OpsWorks Stacks 对内置模板进行任何更改,则您的自定义模板可能会不同步,无法再正常工作。例如,假设您的模板引用了一个依赖文件,并且文件名发生了变化。 OpsWorks Stacks 不经常进行此类更改,当模板发生更改时,它会列出更改,并允许您选择升级到新版本。您应该监控 OpsWorks Stacks 存储库中是否有更改,并根据需要手动更新您的模板。