按层操作系统程序包安装 - AWS OpsWorks

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

按层操作系统程序包安装

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够正常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时它们将停产。为准备此过渡,我们建议您 AWS Systems Manager 尽快将堆栈过渡到。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终结常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager 应用程序管理器

从 Chef 12 开始,您必须使用自定义配方将程序包安装到正在运行不同操作系统的层上。这种方法会在程序包安装方面为您提供极大的灵活性和控制力。

例如,假设你要将 Apache 安装在正在运行的各层 RedHat、Ubuntu 和 Amazon 版本的 Linux 操作系统上。Apache 软件包 RedHat 和 Amazon Linux 被调用httpd,但在 Ubuntu 上,它被称为。apache2

要解决程序包命名方面的这种差异,您可以使用类似于下面的示例配方中的语法。该配方可安装适用于各个操作系统的 Apache 程序包。此示例基于 Chef 文档

package "Install Apache" do case node[:platform] when "redhat", "amazon" package_name "httpd" when "ubuntu" package_name "apache2" end end

有关如何使用 package 资源来管理包的详细信息,请转到 Chef 文档中的页面。

或者,您也可以使用 Chef 配方 DSL (领域特定的语言) 的 value_for_platform 帮助程序方法,这种方法可以更加简便地完成同样的任务:

package "Install Apache" do package_name value_for_platform( ["redhat", "amazon"] => { "default" => "httpd" }, ["ubuntu"] => { "default" => "apache2" } ) end

有关使用 value_for_platform 帮助程序方法的信息,请转到 About the Recipe DSL