個別 layer 作業系統套件安裝 - AWS OpsWorks

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

個別 layer 作業系統套件安裝

重要

所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄或透過 AWS 高級 Support

從 Chef 12 開始,您必須使用自訂配方,在執行不同作業系統的 layer 上安裝套件。此方法提供套件安裝的最大彈性和控制。

例如,假設您要在執行中的圖層 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。