在 Windows 執行個體上執行配方 - AWS OpsWorks

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

在 Windows 執行個體上執行配方

重要

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

本主題基本上是在 Linux 執行個體上執行配方的縮短版本,顯示如何在 Windows 堆疊上執行配方。建議您先參閱在 Linux 執行個體上執行配方,因為它提供更多詳細討論,其中大部分都是與任一種作業系統有關。

如需如何在 AWS OpsWorks 堆疊 Linux 執行個體上執行配方的說明,請參閱在 Linux 執行個體上執行配方

啟用 RDP 存取

開始之前,如果您尚未這麼做,則必須設定安全群組,其具有允許 RDP 存取您執行個體的傳入規則。您在建立堆疊時將會需要該群組。

當您在區域中建立第一個堆疊時, AWS OpsWorks Stacks 會建立一組安全群組。它們包括一個名為類似的東西AWS-OpsWorks-RDP-Server, AWS OpsWorks 堆棧附加到所有 Windows 實例以允許 RDP 訪問。不過,此安全群組預設沒有任何規則,因此您必須新增傳入規則來允許 RDP 存取您的執行個體。

允許 RDP 存取
  1. 開啟 Amazon EC2 主控台,將其設定為堆疊的區域,然後從導覽窗格中選擇「安全群組」。

  2. 選擇 AWS OpsWorks-RDP 伺服器,選擇「入埠」索引標籤,然後選擇「編輯」。

  3. 新增具有下列設定的規則:

    • 類型RDP

    • 來源 — 允許的來源 IP 位址。

      通常,您會允許來自您 IP 地址或指定 IP 地址範圍 (通常是公司的 IP 地址範圍) 的傳入 RDP 請求。

注意

如稍後所述,您還必須編輯使用者許可來授權 RDP 存取一般使用者。

如需詳細資訊,請參閱 使用 RDP 登入

建立和執行配方

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

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

    • 名稱 — WindowsRecipeTest

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

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

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

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

    • 名稱 — RecipeTest

    • 簡短名稱 — 最重要

  3. 將具有默認設置的 24/7 實例添加到 RecipeTest圖層並啟動它

    AWS OpsWorks 堆疊會自動指派AWS-OpsWorks-RDP-Server給這個執行個體,讓授權使用者登入執行個體。

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

    注意

    您也可以登入為管理員,但需要不同的程序。如需詳細資訊,請參閱 使用 RDP 登入

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

注意

為 AWS OpsWorks 堆疊 Windows 執行個體實作食譜時,您使用的目錄結構與實作 AWS OpsWorks Stack Linux 執行個體的食譜時,使用的目錄結構稍有不同。如需詳細資訊,請參閱 技術指南儲存庫

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

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

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

  4. 使用下列配方建立 default.rb 檔案,並將它儲存至 recipes 目錄。

    Chef::Log.info("******Creating a data directory.******") directory 'C:\data' do rights :full_control, 'instance_name\username' inherits false action :create end

    username 取代為您的使用者名稱。

  5. 將技術指南放在儲存庫中。

    若要將食譜安裝在 AWS OpsWorks Stacks 執行個體上,您必須將其儲存在儲存庫中,並向 AWS OpsWorks Stacks 提供將食譜下載至執行個體所需的資訊。您可以將 Windows 技術指南存放為 S3 儲存貯體或 Git 儲存庫中的封存檔。此範例使用 S3 儲存貯體,因此您必須建立 windowstest 目錄的 .zip 封存。如需技術指南儲存庫的詳細資訊,請參閱技術指南儲存庫

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

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

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

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

    • 存放庫類型S3 存檔

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

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

  2. 執行更新自訂技術指南堆疊命令,以在堆疊執行個體上安裝最新版的自訂技術指南 (包括線上執行個體)。如果存在舊版的技術指南,則此命令會予以覆寫。

  3. 更新自訂食譜完成後,執行「執行方法」堆疊命令並將要執行設定為的「方法」來執行方案。windowstest::default此命令會啟動 Chef 執行,內含包含您配方的回合清單。

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

驗證 windowstest
  1. 檢查 Chef 日誌 opstest1 執行個體的「記錄」資料欄中選擇顯示,以顯示記錄。向下捲動,您會在接近底端看到您的日誌訊息。

    ... [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/attributes/customize.rb in the cache. [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/metadata.rb in the cache. [2014-07-31T17:01:46+00:00] INFO: ******Creating a data directory.****** [2014-07-31T17:01:46+00:00] INFO: Processing template[/etc/hosts] action create (opsworks_stack_state_sync::hosts line 3) ...
  2. 選擇「執行個體」,在執行個體的「動作」欄中選擇 rdp,然後要求具有適當到期時間的 RDP 密碼。複製 DNS 名稱、使用者名稱和密碼。您接著可以搭配使用該資訊與 RDP 用戶端 (例如 Windows 遠端桌面連線用戶端) 來登入執行個體,然後驗證 c:\data 已存在。如需詳細資訊,請參閱 使用 RDP 登入

注意

如果您的配方未正常運作,請參閱故障診斷和修復手冊中的故障診斷秘訣;其中大部分也適用於 Windows 執行個體。如果您想要透過編輯執行個體上的方法來測試修正程式,請在C:\chef\cookbooks目錄中尋找您的食譜, AWS OpsWorks Stacks 會安裝自訂食譜。

自動執行配方

Execute Recipes (執行配方) 命令是一種輕鬆測試自訂配方的方法,這是在其中大部分範例中使用它的原因。不過,實際上,您通常會在執行個體生命週期的標準點執行方法,例如執行個體完成開機後或部署應用程式時。 AWS OpsWorks Stack 可為每個層支援一組生命週期事件,以簡化執行個體上的執行方法:設定、設定、部署、取消部署和關閉。您可以將配方指派給適當的生命週期事件,讓 AWS OpsWorks 堆疊自動在圖層的執行個體上執行配方。

您通常會在執行個體完成開機時立即建立目錄,這對應至安裝事件。以下顯示如何使用您稍早在範例中建立的相同堆疊,在安裝時執行範例配方。您可以針對其他事件使用相同的程序。

在安裝時自動執行配方
  1. 在導覽窗格中選擇「圖」,然後選擇圖 RecipeTest 層「配方」連結旁邊的鉛筆圖示。

  2. windowstest::default 新增至 layer 的 Setup (安裝) 配方,並選擇 + 將它新增至 layer,然後選擇 Save (儲存) 儲存組態。

  3. 選擇 Instances (執行個體),並將另一個執行個體新增至 layer,然後啟動它。

    執行個體應該命名為 recipetest2。完成啟動後, AWS OpsWorks 堆棧將運行windowstest::default

  4. recipetest2 執行個體上線之後,請驗證 c:\data 已存在。

注意

如果您已將配方指派給安裝、設定或部署事件,則也可以手動執行它們,方法是使用堆疊命令 (安裝和設定) 或部署命令 (部署) 來觸發事件。請注意,如果您有多個指派給事件的配方,則這些命令會執行所有配方。