本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
運行一個視窗 PowerShell 腳本
重要
該 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post
注意
這些範例假設您已完成在 Windows 執行個體上執行配方範例。否則,您應該先執行該範例。具體而言,它說明如何啟用 RDP 存取您的執行個體。
讓方案在 Windows 執行個體上執行工作的一種方法,尤其是沒有對應 Chef 資源的工作,就是讓方案執行 Windows 指令碼。 PowerShell 本節通過描述如何使用 Windows PowerShell 腳本來安裝 Windows 功能,向您介紹基本知識。
資powershell_script
以下簡短地彙總如何針對此範例建立堆疊。如需詳細資訊,請參閱 建立新的堆疊。
建立堆疊
-
開啟 AWS OpsWorks Stacks 主控台
,然後選擇 Add Stack (新增堆疊)。指定下列設定,並接受其他設定的預設值,然後按一下 Add Stack (新增堆疊)。 -
名稱 — PowerShellTest
-
地區 — 美國西部 (奧勒岡)
此範例適用於任何區域,但建議您使用美國西部 (奧勒岡) 進行教學課程。
-
默認操作系統 — Microsoft 視窗服務器 2012 R2
-
-
選擇 Add a layer (新增 layer),並新增自訂 layer 至具有下列設定的堆疊。
-
名稱 — PowerShell
-
短名稱-電源外殼
-
-
選擇 Permissions (許可),並選擇 Edit (編輯),然後選取 SSH/RDP 和 sudo/admin。除了
AWS-OpsWorks-RDP-Server
安全群組之外,您還需要有此授權,才能以一般使用者身分登入執行個體。
執行個體正在啟動時 (通常需要幾分鐘),您可以建立食譜。此範例的配方會建立資料目錄,而且基本上是範例 3:建立目錄 (針對 Windows 所修改) 中的配方。
設定技術指南
-
建立並導覽至名為
powershell
的目錄。 -
使用下列內容建立
metadata.rb
檔案,並將它儲存至windowstest
。name "powershell" version "0.1.0"
-
在
recipes
目錄內,建立powershell
目錄。 -
使用下列配方建立
default.rb
檔案,並將它儲存至recipes
目錄。Chef::Log.info("******Installing XPS.******") powershell_script "Install XPS Viewer" do code <<-EOH Install-WindowsFeature XPS-Viewer EOH guard_interpreter :powershell_script not_if "(Get-WindowsFeature -Name XPS-Viewer).installed" end
-
powershell_script
資源會執行 Cmdlet 來安裝 XPS 檢視器。此範例只會執行一個 Cmdlet,但
code
區塊可以包含任意數目的命令列。 -
該
guard_interpreter
屬性指示廚師使用 64 位版本的 Windows PowerShell。 -
not_if
保護屬性可確保 Chef 不會安裝已安裝的功能。
-
-
建立
powershell
目錄的.zip
存檔。 -
將存檔上傳到 Amazon S3 儲存貯體、將存檔設為公開,並記錄存檔的 URL。您也可以使用私有封存,但在此範例中公有封存就已足夠,而且使用起來更為簡單。
傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊,請參閱如何清空 S3 儲存貯體?或如何刪除 S3 儲存貯體?。
您現在可以安裝技術指南,並執行配方。
執行配方
-
編輯堆疊以啟用自訂技術指南,然後指定下列設定。
-
存放庫類型 — S3 存檔
-
儲存庫 URL — 您之前錄製的食譜封存網址
接受其他設定的預設值,然後選擇 Save (儲存) 以更新堆疊組態。
-
-
執行 Update Custom Cookbooks (更新自訂技術指南) 堆疊命令,以在堆疊執行個體上安裝最新版的自訂技術指南。
-
更新自訂食譜完成之後,執行「執行方法」堆疊命令,並將要執行的方法設定為來執行方案。
powershell::default
注意
此範例為了方便起見,使用「執行方法」,但您通常會讓 AWS OpsWorks Stack 透過將方法指派給適當的生命週期事件來自動執行方法。您可以手動觸發事件來執行這類配方。您可以使用堆疊命令來觸發安裝和設定事件,以及使用部署命令來觸發部署和解除部署事件。
成功執行配方之後,您就可以驗證配方。
驗證 powershell 配方
-
檢查 Chef 日誌。按一下 PowerShell 1 執行個體的 [記錄] 資料行中的 [顯示],即可顯示記錄。向下捲動,您會在接近底端看到您的日誌訊息。
... [2015-04-27T18:12:09+00:00] INFO: Storing updated cookbooks/powershell/metadata.rb in the cache. [2015-04-27T18:12:09+00:00] INFO: ******Installing XPS.****** [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Install XPS Viewer] action run (powershell::default line 3) [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Guard resource] action run (dynamically defined) [2015-04-27T18:12:42+00:00] INFO: powershell_script[Install XPS Viewer] ran successfully ...
-
使用 RDP 登入執行個體,並開啟 Start (開始) 選單。XPS 檢視器應該與 Windows Accessories (Windows 附屬應用程式) 一起列出。