适用于 Chef 12 Linux 的 AWS OpsWorks Stacks 支持 - AWS OpsWorks

适用于 Chef 12 Linux 的 AWS OpsWorks Stacks 支持

此部分概述了适用于 Chef 12 Linux 的 AWS OpsWorks Stacks。有关 Windows 上的 Chef 12 的信息,请参阅入门:Windows。有关 Linux 上的早期 Chef 版本的信息,请参阅适用于 Linux 的 Chef 11.10 及早期版本

概览

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

AWS OpsWorks Stacks 仍将支持适用于 Linux 堆栈的 Chef 11.10。不过,如果您是高级 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 Stacks 生命周期事件的自定义配方。利用第二个运行,您可以使用自己的 Chef 说明书或社区说明书。

  • 解决命名空间冲突 – 在 Chef 12 之前,AWS OpsWorks Stacks 在共享环境中执行系统任务并运行内置配方和自定义配方。这将导致出现命名空间冲突,并且在 AWS OpsWorks Stacks 已运行的配方上含糊不清。必须手动覆盖不需要的默认配置,这是一项耗时且容易出错的任务。在 Chef 12 for Linux 中,AWS OpsWorks Stacks 不再支持在应用程序服务器环境 (如 PHP、Node.js 或 Rails) 中使用内置 Chef 说明书。通过消除内置配方,AWS OpsWorks Stacks 将消除内置配方和自定义配方之间的命名冲突。

  • 对 Chef 社区说明书的有力支持 – AWS OpsWorks Stacks Chef 12 Linux 提供对来自 Chef 超市的社区说明书的更好的兼容性和支持。您现在可以使用比 AWS OpsWorks Stacks 之前提供的内置说明书更好的社区说明书 - 旨在用于最新的应用程序服务器环境和框架的说明书。您可以运行大多数说明书而无需修改 Chef 12 for Linux。有关更多信息,请转至了解 Chef 网站上的 Chef 超市Chef 超市网站或 GitHub 上的 Chef 说明书存储库。

  • 实时 Chef 12 更新 – 在每个版本的 Chef 发布后,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 12 Linux 的重要 AWS OpsWorks Stacks 更改 (与之前的 Chef 版本 11.10、11.4 和 0.9 相比) 如下所示:

  • 对于适用于 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 的 AWS 开发工具包的自定义配方来检索数据。有关示例,请参阅使用 适用于 Ruby 的开发工具包。有关更多信息,请参阅AWS OpsWorks Stacks 数据包参考

  • 在 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 Stacks 支持 Chef 12 Linux 堆栈的所有实例类型,但特定的实例类型除外,例如高性能计算 (HPC) 集群计算、集群 GPU 和高内存集群实例类型。

更多信息

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

  • 入门:示例

    通过指导您完成使用 AWS OpsWorks Stacks 控制台创建 Node.js 应用程序环境的简短动手实践,向您介绍 AWS OpsWorks Stacks。

  • 入门:Linux

    通过指导您完成使用 AWS OpsWorks Stacks 控制台基本 Chef 12 Linux 堆栈(包含一个带提供流量的 Node.js 应用程序的简单层)的简短动手实践,向您介绍 AWS OpsWorks Stacks 和 Chef 12。

  • 自定义层

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

  • 移至数据包

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