使用自定义模板扩展 AWS OpsWorks 堆栈配置文件 - AWS OpsWorks

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

使用自定义模板扩展 AWS OpsWorks 堆栈配置文件

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

注意

由于 AWS OpsWorks Stacks 处理 Windows 堆栈的 Chef 运行方式与 Linux 堆栈不同,因此你不能将本节中讨论的技术用于 Windows 堆栈。

AWS OpsWorks Stacks 使用模板来创建配置文件等文件,这些文件通常依赖于许多设置的属性。如果您使用自定义 JSON 或自定义食谱属性来覆盖 AWS OpsWorks 堆栈定义,则您的首选设置将合并到配置文件中,而不是 AWS OpsWorks 堆栈设置。但是, AWS OpsWorks Stacks 不一定要为每个可能的配置设置指定一个属性;它接受某些设置的默认值,而直接在模板中对其他设置进行硬编码。如果没有相应的 AWS OpsWorks Stacks 属性,则无法使用自定义 JSON 或自定义食谱属性来指定首选设置。

您可以通过创建自定义模板来扩展配置文件以包含额外的配置设置。随后,您可以向文件添加任何配置设置或其他必需内容,并覆盖任何硬编码的设置。有关模板的更多信息,请参阅模板

注意

您可以覆盖任何内置模板,但 opsworks-agent.monitrc.erb 除外

创建自定义模板
  1. 创建一个具有与内置说明书相同的结构和目录名的说明书。然后,在适当的目录中创建一个与您要自定义的内置模板同名的模板文件。例如,要使用自定义模板扩展 Apache httpd.conf 配置文件,您必须在存储库中实施 apache2 说明书,并且您的模板文件必须为 apache2/templates/default/apache.conf.erb。使用完全相同的名称允许 AWS OpsWorks Stacks 识别自定义模板并使用它来代替内置模板。

    最简单的方法是将内置模板文件从内置食谱的 GitHub存储库复制到您的食谱中,然后根据需要进行修改。

    重要

    请不要复制内置说明书中的任何文件,但要自定义的模板文件除外。复制其他类型的说明书文件 (如配方) 将创建重复的 Chef 资源,并且可能导致错误。

    说明书还可以包含自定义属性、配方和相关文件,但其文件名不应与内置文件名重复。

  2. 自定义模板文件以生成符合您要求的配置文件。您可以添加更多设置、删除现有设置、替换硬编码的属性等。

  3. 如果您尚未执行此操作,请编辑堆栈设置以启用自定义说明书并指定说明书存储库。有关更多信息,请参阅 安装自定义说明书

注意

有关此过程的完整演练,请参阅覆盖内置模板

您无需实现任何配方或在图层配置中添加配方即可覆盖模板。 AWS OpsWorks Stacks 始终运行内置配方。当此堆栈运行创建配置文件的配方时,它将自动使用您的自定义模板,而不是使用内置模板。

注意

如果 AWS OpsWorks Stacks 对内置模板进行任何更改,则您的自定义模板可能会不同步,无法再正常工作。例如,假设您的模板引用了一个依赖文件,并且文件名发生了变化。 AWS OpsWorks Stacks 不经常进行此类更改,当模板发生更改时,它会列出更改,并允许您选择升级到新版本。您应该监控 AWS OpsWorks Stacks 存储库中是否有更改,并根据需要手动更新您的模板。