使用配方執行指令碼 - AWS OpsWorks

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

使用配方執行指令碼

重要

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

如果您的現有指令碼執行所需的自訂任務,則擴充 layer 的最簡單方式實作通常是實作簡單配方來執行指令碼。您接著可以將配方指派給適當的生命週期事件 (一般是安裝或部署),或使用 execute_recipes 堆疊命令手動執行配方。

下列範例會在 Linux 執行個體上執行殼層指令碼,但是您可以對其他類型的指令碼 (包括 Windows PowerShell 指令碼) 使用相同的方法。

cookbook_file "/tmp/lib-installer.sh" do source "lib-installer.sh" mode 0755 end execute "install my lib" do command "sh /tmp/lib-installer.sh" end

cookbook_file 資源代表存放在技術指南 files 目錄之子目錄中的檔案,並將檔案傳輸至執行個體上的指定位置。此範例會將 Shell 指令碼 lib-installer.sh 傳輸至執行個體的 /tmp 目錄,並將檔案的模式設定為 0755。如需詳細資訊,請參閱 cookbook_file

execute 資源代表命令 (如 Shell 命令)。此範例執行 lib-installer.sh。如需詳細資訊,請參閱 execute

您也可以將指令碼併入配方來執行指令碼。下列範例會執行 bash 指令碼,但 Chef 也支援 Csh、Perl、Python 和 Ruby。

script "install_something" do interpreter "bash" user "root" cwd "/tmp" code <<-EOH #insert bash script EOH end

script 資源代表指令碼。此範例指定 bash 解譯器、將使用者設定為 "root",並將工作目錄設定為 /tmp。它接著會執行 code 區塊中的 bash 指令碼,可視需要包括多行。如需詳細資訊,請參閱 script

如需如何使用配方執行指令碼的詳細資訊,請參閱範例 7:執行命令和指令碼。如需如何在 Windows 執行個體上執行 PowerShell 指令碼的範例,請參閱運行一個視窗 PowerShell腳本