AWS OpsWorks Stacks 对 Chef 12 Linux 的支持 - AWS OpsWorks

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

AWS OpsWorks Stacks 对 Chef 12 Linux 的支持

重要

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

本节简要概述了 Chef 12 Linux 的 AWS OpsWorks 堆栈。有关 Windows 上的 Chef 12 的信息,请参阅入门:Windows。有关 Linux 上的早期 Chef 版本的信息,请参阅适用于 Linux 的 Chef 11.10 及早期版本

概述

AWS OpsWorks Stacks 支持 Chef 12(最新版本的 Chef)适用于 Linux 堆栈。有关更多信息,请参阅了解 Chef

AWS OpsWorks Stacks 继续支持 Chef 11.10 的 Linux 堆栈。不过,如果您是高级 Chef 用户,并且您想从大量可选的社区说明书中获益,或编写您自己的自定义说明书,建议您使用 Chef 12。相对于 Chef 11.10 以及早期 Linux 堆栈,Chef 12 堆栈提供了以下优势:

  • 两个单独的 Chef 运行 ——在实例上执行命令时, AWS OpsWorks Stacks 代理现在会执行两次隔离的 Chef 运行:一次运行用于将实例与其他 AWS 服务 AWS Identity and Access Management (例如 (IAM))集成的任务,另一次运行您的自定义食谱。第一次 Chef 运行会在实例上安装 AWS OpsWorks Stacks 代理并执行系统任务,例如用户设置和管理、卷设置和配置、 CloudWatch 指标配置等。第二个运行专用于运行AWS OpsWorks 堆栈生命周期事件的自定义配方。利用第二个运行,您可以使用自己的 Chef 说明书或社区说明书。

  • 解决命名空间冲突 – 在 Chef 12 之前, AWS OpsWorks Stacks 在共享环境中执行系统任务并运行内置配方和自定义配方。这导致命名空间冲突以及对 AWS OpsWorks Stacks 运行了哪些配方不清楚。必须手动覆盖不需要的默认配置,这是一项耗时且容易出错的任务。在 Linux 版 Chef 12 中, AWS OpsWorks Stacks 不再支持适用于 PHP、Node.js 或 Rails 等应用程序服务器环境的内置 Chef 食谱。通过消除内置配方, AWS OpsWorks Stacks 消除了内置配方和自定义配方之间命名冲突的问题。

  • 对厨师社区食谱的大力支持 — AWS OpsWorks Stacks Chef 12 Linux 为厨师超市的社区食谱提供了更好的兼容性和支持。现在,您可以使用优于 AWS OpsWorks Stacks 之前提供的内置食谱的社区食谱,这些食谱专为在最新的应用程序服务器环境和框架中使用而设计。您可以运行大多数说明书而无需修改 Chef 12 for Linux。欲了解更多信息,请访问 Learn Chef 网站的 Chef Supermarket、Ch ef Super market 网站和上GitHubChef Cookbooks 存储库。

  • 及时更新 Chef 12 —— AWS OpsWorks Stacks 将在每次 Chef 发布后不久将其厨师环境更新到最新的 Chef 12 版本。在 Chef 12 中,Chef 的次要更新和新的 AWS OpsWorks Stacks 代理版本将同时发布。这可让您直接测试新的 Chef 版本,并使您的 Chef 配方和应用程序能够利用最新的 Chef 功能。

有关 Chef 12 之前的受支持的 Chef 版本的更多信息,请参阅适用于 Linux 的 Chef 11.10 及早期版本

移至 Chef 12

与之前的 Chef 版本 11.10、11.4 和 0.9 的支持相比,Chef 12 Linux 的关键 AWS OpsWorks 堆栈变化如下:

  • 对于适用于 Linux 堆栈的 Chef 12,不再提供或支持内置层。由于仅执行您的自定义配方,因此,删除此支持将使实例的设置方式变得完全透明,并使自定义说明书更易于编写和维护。例如,不再需要覆盖内置 AWS OpsWorks Stacks 配方的属性。移除内置层还可以让 AWS OpsWorks Stacks 更好地支持由 Chef 社区开发和维护的食谱,这样你就可以充分利用它们。Chef 12 for Linux 中不再提供的内置层类型包括:AWS Flow (Ruby)GangliaHAProxyJava App ServerMemcachedMySQLNode.js App ServerPHP App ServerRails App ServerStatic Web Server

    • 由于 AWS OpsWorks Stacks 正在运行您提供的食谱,因此不再需要通过运行自定义食谱来覆盖内置的 AWS OpsWorks Stacks 属性。要覆盖您自己的配方或社区配方中的属性,请按照 Chef 12 文档中的关于属性中的说明和示例执行操作。

  • AWS OpsWorks Stacks 继续为 Chef 12 Linux 堆栈的以下层提供支持:

  • Chef 12 Linux 的堆栈配置和数据包已更改,与 Chef 12.2 Windows 的对应项非常相似。这可让您更轻松地查询和分析这些数据包并排查其问题,尤其是在您使用具有不同的操作系统类型的堆栈时。请注意, AWS OpsWorks Stacks 不支持加密的数据包。要以加密形式存储敏感数据,例如密码或证书,我们建议将其存储在私有 S3 存储桶中。然后,您可以创建一个使用适用于 Ruby 的 Amazon SDK 来检索数据的自定义配方。有关示例,请参阅使用适用于 Ruby 的 SDK。有关更多信息,请参阅AWS OpsWorks 堆栈数据包参考

  • 在 Chef 12 Linux 中,Berkshelf 不再安装在堆栈实例上。相反,建议您在本地开发计算机上使用 Berkshelf,在本地打包说明书依赖项。然后,将您的程序包 (包含依赖项) 上传到 Amazon Simple Storage Service。最后,修改您的 Chef 12 Linux 堆栈,将已上传的程序包用作说明书源。有关更多信息,请参阅 本地打包说明书依赖项

  • 不再支持 EBS 卷的 RAID 配置。要提高性能,您可以使用 Amazon Elastic Block Store (Amazon EBS) 的预配置 IOPS

  • 不再支持 autofs。

  • 不再支持 Subversion 存储库。

  • 现在,必须使用自定义配方执行每层 OS 程序包安装。有关更多信息,请参阅 按层程序包安装

受支持的操作系统

早期版本的 Chef 所支持的 Linux 操作系统也受 Chef 12 的支持。有关 Chef 12 Linux 堆栈可使用的 Linux 操作系统类型和版本的列表,请参阅Linux 操作系统:

支持的实例类型

AWS OpsWorks 堆栈支持 Chef 12 Linux 堆栈的所有实例类型,但高性能计算 (HPC) 集群计算、集群 GPU 和高内存集群实例类型等特殊实例类型除外。

更多信息

要了解有关如何使用适用于 Linux 堆栈的 Chef 12 的更多信息,请参阅以下内容:

  • 入门:示例

    通过指导你使用 AWS OpsWorks Stacks 控制台进行简短的动手练习,创建 Node.js 应用程序环境,向你介绍 AWS OpsWorks Stacks。

  • 入门:Linux

    通过指导你使用 AWS OpsWorks Stacks 控制台进行动手练习,向你介绍 AWS OpsWorks Stacks 和 Chef 12 Linux,创建一个基本的 Chef 12 Linux 堆栈,该堆栈包含一个带有提供流量的 Node.js 应用程序的简单层。

  • 自定义层

    提供有关将包含说明书和配方的层添加到 Chef 12 Linux 堆栈的准则。您可以使用社区所提供的可用说明书和配方,也可以创建您自己的说明书和配方。

  • 移至数据包

    将由运行 Chef 11 及早期版本的 Chef 的 Linux 堆栈使用的实例 JSON 与由运行 Chef 12 的 Linux 堆栈使用的实例 JSON 进行比较。还提供了 Chef 12 实例 JSON 格式的参考文档的暗示。