運行一個視窗 PowerShell 腳本 - AWS OpsWorks

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

運行一個視窗 PowerShell 腳本

重要

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

注意

這些範例假設您已完成在 Windows 執行個體上執行配方範例。否則,您應該先執行該範例。具體而言,它說明如何啟用 RDP 存取您的執行個體。

讓方案在 Windows 執行個體上執行工作的一種方法,尤其是沒有對應 Chef 資源的工作,就是讓方案執行 Windows 指令碼。 PowerShell 本節通過描述如何使用 Windows PowerShell 腳本來安裝 Windows 功能,向您介紹基本知識。

powershell_script源會在執行個體上執行 Windows PowerShell 指令程式。下列範例會使用 Install-WindowsFeature 指令程式,在執行個體上安裝 XPS 檢視器。

以下簡短地彙總如何針對此範例建立堆疊。如需詳細資訊,請參閱 建立新的堆疊

建立堆疊
  1. 開啟 AWS OpsWorks Stacks 主控台,然後選擇 Add Stack (新增堆疊)。指定下列設定,並接受其他設定的預設值,然後按一下 Add Stack (新增堆疊)

    • 名稱 — PowerShellTest

    • 地區 — 美國西部 (奧勒岡)

      此範例適用於任何區域,但建議您使用美國西部 (奧勒岡) 進行教學課程。

    • 默認操作系統 — Microsoft 視窗服務器 2012 R2

  2. 選擇 Add a layer (新增 layer),並新增自訂 layer 至具有下列設定的堆疊。

    • 名稱 — PowerShell

    • 短名稱-電源外殼

  3. 使用默認設置將 24/7 實例添加到 PowerShell 圖層並啟動它

  4. 選擇 Permissions (許可),並選擇 Edit (編輯),然後選取 SSH/RDPsudo/admin。除了 AWS-OpsWorks-RDP-Server 安全群組之外,您還需要有此授權,才能以一般使用者身分登入執行個體。

執行個體正在啟動時 (通常需要幾分鐘),您可以建立食譜。此範例的配方會建立資料目錄,而且基本上是範例 3:建立目錄 (針對 Windows 所修改) 中的配方。

設定技術指南
  1. 建立並導覽至名為 powershell 的目錄。

  2. 使用下列內容建立 metadata.rb 檔案,並將它儲存至 windowstest

    name "powershell" version "0.1.0"
  3. recipes 目錄內,建立 powershell 目錄。

  4. 使用下列配方建立 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 不會安裝已安裝的功能。

  5. 建立 powershell 目錄的 .zip 存檔。

  6. 將存檔上傳到 Amazon S3 儲存貯體、將存檔設為公開,並記錄存檔的 URL。您也可以使用私有封存,但在此範例中公有封存就已足夠,而且使用起來更為簡單。

    傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊,請參閱如何清空 S3 儲存貯體?如何刪除 S3 儲存貯體?

您現在可以安裝技術指南,並執行配方。

執行配方
  1. 編輯堆疊以啟用自訂技術指南,然後指定下列設定。

    • 存放庫類型S3 存檔

    • 儲存庫 URL — 您之前錄製的食譜封存網址

    接受其他設定的預設值,然後選擇 Save (儲存) 以更新堆疊組態。

  2. 執行 Update Custom Cookbooks (更新自訂技術指南) 堆疊命令,以在堆疊執行個體上安裝最新版的自訂技術指南。

  3. 更新自訂食譜完成之後,執行「執行方法」堆疊命令,並將要執行方法設定為來執行方案。powershell::default

注意

此範例為了方便起見,使用「執行方法」,但您通常會讓 AWS OpsWorks Stack 透過將方法指派給適當的生命週期事件來自動執行方法。您可以手動觸發事件來執行這類配方。您可以使用堆疊命令來觸發安裝和設定事件,以及使用部署命令來觸發部署和解除部署事件。

成功執行配方之後,您就可以驗證配方。

驗證 powershell 配方
  1. 檢查 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 ...
  2. 使用 RDP 登入執行個體,並開啟 Start (開始) 選單。XPS 檢視器應該與 Windows Accessories (Windows 附屬應用程式) 一起列出。