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