本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Windows 執行個體上執行配方
重要
所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄
本主題基本上是在 Linux 執行個體上執行配方的縮短版本,顯示如何在 Windows 堆疊上執行配方。建議您先參閱在 Linux 執行個體上執行配方,因為它提供更多詳細討論,其中大部分都是與任一種作業系統有關。
有關如何運行食譜的說明 AWS OpsWorks 堆疊 Linux 執行個體,請參閱在 Linux 執行個體上執行配方。
啟用RDP存取
在開始之前,如果您尚未這樣做,則必須使用允許執行個體RDP存取的輸入規則來設定安全性群組。您在建立堆疊時將會需要該群組。
當您在區域中建立第一個堆疊時, AWS OpsWorks 堆疊會建立一組安全群組。它們包括一個名為類似的東西AWS-OpsWorks-RDP-Server
, AWS OpsWorks 堆疊會附加至所有 Windows 執行個體以允許RDP存取。但是,根據預設,此安全性群組沒有任何規則,因此您必須新增輸入規則以允許RDP存取執行個體。
允許RDP存取
-
開啟 Amazon EC2 主控台
,將其設定為堆疊的區域,然後從導覽窗格中選擇「安全群組」。 -
選擇 AWS--OpsWorks RDP-[伺服器],選擇 [入埠] 索引標籤,然後選擇 [編輯]。
-
新增具有下列設定的規則:
-
類型 — RDP
-
來源 — 允許的來源 IP 位址。
您通常允許來自 IP 位址或指定 IP 位址範圍 (通常是您的公司 IP 位址範圍) 的輸入RDP要求。
-
注意
如稍後所述,您也必須編輯使用者權限,才能授權一般使用者的RDP存取權。
如需詳細資訊,請參閱使用 RDP 登入。
建立和執行配方
以下簡短地彙總如何針對此範例建立堆疊。如需詳細資訊,請參閱建立新的堆疊。
建立堆疊
-
開啟 AWS OpsWorks 堆疊主控台
並選擇「新增堆疊」。指定下列設定,並接受其他設定的預設值,然後選擇 Add Stack (新增堆疊)。 -
名稱 — WindowsRecipeTest
-
地區 — 美國西部 (奧勒岡)
此範例適用於任何區域,但我們建議您使用美國西部 (奧勒岡) 進行教學課程。
-
默認操作系統 — Microsoft 視窗服務器 2012 R2
-
-
選擇 Add a layer (新增 layer),並新增自訂 layer 至具有下列設定的堆疊。
-
名稱 — RecipeTest
-
簡短名稱 — 最重要
-
-
將具有默認設置的 24/7 實例添加到 RecipeTest圖層並啟動它。
AWS OpsWorks 堆疊會自動指派
AWS-OpsWorks-RDP-Server
給這個執行個體,讓授權使用者登入執行個體。 -
選擇權限,然後選擇編輯,然後選擇 SSH/RDP和 sudo/管理員。除了
AWS-OpsWorks-RDP-Server
安全群組之外,一般使用者還需要有此授權,才能登入執行個體。注意
您也可以登入為管理員,但需要不同的程序。如需詳細資訊,請參閱使用 RDP 登入。
執行個體正在啟動時 (通常需要幾分鐘),您可以建立食譜。此範例的配方會建立資料目錄,而且基本上是範例 3:建立目錄 (針對 Windows 所修改) 中的配方。
注意
當實施食譜 AWS OpsWorks 堆疊 Windows 執行個體時,您使用的目錄結構與實作食譜時的目錄結構有所不同 AWS OpsWorks 堆疊 Linux 執行個體。如需詳細資訊,請參閱技術指南儲存庫。
設定技術指南
-
建立並導覽至名為
windowstest
的目錄。 -
使用下列內容建立
metadata.rb
檔案,並將它儲存至windowstest
。name "windowstest" version "0.1.0"
-
在
recipes
內建立windowstest
目錄。 -
使用下列配方建立
default.rb
檔案,並將它儲存至recipes
目錄。Chef::Log.info("******Creating a data directory.******") directory 'C:\data' do rights :full_control, '
instance_name
\username
' inherits false action :create endReplace (取代)
username
使用您的使用者名稱。 -
將技術指南放在儲存庫中。
要將食譜安裝在 AWS OpsWorks 堆棧實例,您必須將其存儲在存儲庫中並提供 AWS OpsWorks 堆疊將食譜下載至執行個體所需的資訊。您可以將 Windows 技術指南存放為 S3 儲存貯體或 Git 儲存庫中的封存檔。此範例使用 S3 儲存貯體,因此您必須建立
windowstest
目錄的 .zip 封存。如需技術指南儲存庫的詳細資訊,請參閱技術指南儲存庫。 -
將存檔上傳到 S3 儲存貯體,將歸檔設為公開,然後記錄歸檔URL。您也可以使用私有封存,但在此範例中公有封存就已足夠,而且使用起來更為簡單。
傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊,請參閱如何清空 S3 儲存貯體?或如何刪除 S3 儲存貯體?。
您現在可以安裝技術指南,並執行配方。
執行配方
-
編輯堆疊以啟用自訂技術指南,然後指定下列設定。
-
存放庫類型 — S3 存檔
-
存儲庫 URL-您之前記錄的食譜存檔 URL
接受其他設定的預設值,然後選擇 Save (儲存) 以更新堆疊組態。
-
-
執行更新自訂技術指南堆疊命令,以在堆疊執行個體上安裝最新版的自訂技術指南 (包括線上執行個體)。如果存在舊版的技術指南,則此命令會予以覆寫。
-
更新自訂食譜完成後,執行「執行方法」堆疊命令,並將要執行的方法設定為來執行方案。
windowstest::default
此命令會啟動 Chef 執行,內含包含您配方的回合清單。
成功執行配方之後,您就可以驗證配方。
驗證 windowstest
-
檢查 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) ...
-
選擇「執行個體」,在執行個體的「動作」 欄中選擇 rdp,然後要求具有適當到期時間的RDP密碼。複製名DNS稱、使用者名稱和密碼。然後,您可以將該資訊與用RDP戶端 (例如 Windows 遠端桌面連線用戶端) 搭配使用,登入執行個體並確認是否
c:\data
存在。如需詳細資訊,請參閱使用 RDP 登入。
注意
如果您的配方未正常運作,請參閱故障診斷和修復手冊中的故障診斷秘訣;其中大部分也適用於 Windows 執行個體。如果您想要透過編輯執行個體上的配方來測試您的修正程式,請在C:\chef\cookbooks
目錄中尋找您的食譜 AWS OpsWorks 堆棧安裝自定義食譜。
自動執行配方
Execute Recipes (執行配方) 命令是一種輕鬆測試自訂配方的方法,這是在其中大部分範例中使用它的原因。不過,實際上,您一般會在執行個體生命週期的標準點執行配方 (例如,在執行個體完成開機之後,或部署應用程式時)。 AWS OpsWorks Stack 可為每個層支援一組生命週期事件,以簡化執行個體上的執行方法:設定、設定、部署、取消部署和關閉。你可以有 AWS OpsWorks 堆疊會將配方指派給適當的生命週期事件,在圖層的執行個體上自動執行配方。
您通常會在執行個體完成開機時立即建立目錄,這對應至安裝事件。以下顯示如何使用您稍早在範例中建立的相同堆疊,在安裝時執行範例配方。您可以針對其他事件使用相同的程序。
在安裝時自動執行配方
-
在導覽窗格中選擇「圖層」,然後選擇圖 RecipeTest 層「配方」連結旁邊的鉛筆圖示。
-
將
windowstest::default
新增至 layer 的 Setup (安裝) 配方,並選擇 + 將它新增至 layer,然後選擇 Save (儲存) 儲存組態。 -
選擇 Instances (執行個體),並將另一個執行個體新增至 layer,然後啟動它。
執行個體應該命名為
recipetest2
。完成啟動後, AWS OpsWorks 堆棧將運行windowstest::default
。 -
在
recipetest2
執行個體上線之後,請驗證c:\data
已存在。