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

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

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

重要

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

注意

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

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

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

注意

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

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

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

    重要

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

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

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

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

注意

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

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

注意

如果 AWS OpsWorks Stacks 会对内置模板进行任何更改,您的自定义模板可能会不同步,无法再正常工作。例如,假设您的模板是一个独立文件,并且文件名已更改。 AWS OpsWorks Stacks 不会经常进行此类更改,并且当模板发生更改时,此堆栈会列出更改并为您提供升级到新版本的选项。你应该监视 AWS OpsWorks 堆叠存储库以进行更改,并根据需要手动更新您的模板。