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

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

按层操作系统程序包安装

重要

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

从 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 RecipeDSL(特定于域的语言)中的value_for_platform辅助方法,它可以更简洁地完成同样的事情:

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

有关使用value_for_platform辅助方法的信息,请转到关于食谱DSL