本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Windows 堆疊上使用搜尋索引節點
重要
所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄
注意
此範例假設您已完成在 Windows 執行個體上執行配方範例。否則,您應該先執行該範例。特別是,它描述了如何啟用對實例的RDP訪問。
此範例根據具有單一自訂 layer 和一個執行個體的 Windows 堆疊。它搭配使用 Chef 搜尋與 node
搜尋索引來取得伺服器的公有 IP 地址,並將地址放入 C:\tmp
目錄的檔案中。以下簡短地彙總如何針對此範例建立堆疊。如需詳細資訊,請參閱建立新的堆疊。
建立堆疊
-
開啟 AWS OpsWorks 堆疊主控台
並選擇「新增堆疊」。 -
指定下列設定,並接受其他設定的預設值,然後選擇 Add Stack (新增堆疊)。
-
名稱 — NodeSearch
-
地區 — 美國西部 (奧勒岡)
此範例適用於任何區域,但我們建議您使用美國西部 (奧勒岡) 進行教學課程。
-
默認操作系統 — Microsoft 視窗服務器 2012 R2
-
-
選擇 Add a layer (新增 layer),並新增自訂 layer 至具有下列設定的堆疊。
-
名稱 — IPTest
-
短名稱 — 最佳
-
-
將具有預設設定的全年無休 t2.micro 執行個體新增至圖IPTest層並啟動它。它將會命名為 iptest1。
AWS OpsWorks 堆疊會自動指派
AWS-OpsWorks-RDP-Server
給這個執行個體,讓授權使用者登入執行個體。 -
選擇權限,然後選擇編輯,然後選擇 SSH/RDP和 sudo/管理員。除了
AWS-OpsWorks-RDP-Server
安全群組之外,一般使用者還需要有此授權,才能登入執行個體。注意
您也可以登入為管理員,但需要不同的程序。如需詳細資訊,請參閱使用 RDP 登入。
設定技術指南
-
建立並導覽至名為
nodesearch
的目錄。 -
使用下列內容建立
metadata.rb
檔案,並將它儲存至opstest
。name "nodesearch" version "0.1.0"
-
在
recipes
內建立nodesearch
目錄。 -
使用下列配方建立
default.rb
檔案,並將它儲存至recipes
目錄。directory 'C:\tmp' do rights :full_control, 'Everyone' recursive true action :create end windowsserver = search(:node, "hostname:iptest*").first Chef::Log.info("**********The public IP address is: '#{windowsserver[:ipaddress]}'**********") file 'C:\tmp\addresses.txt' do content "#{windowsserver[:ipaddress]}" rights :full_control, 'Everyone' action :create end
配方會執行下列動作:
-
使用目錄資源來建立檔案的
C:\tmp
目錄。如需此資源的詳細資訊,請參閱範例 3:建立目錄。
-
搭配使用 Chef 搜尋與
node
搜尋索引,以取得主機名稱開頭為iptest
的節點 (執行個體) 清單。如果您使用預設主題 (透過將整數附加到圖層的簡短名稱來建立主機名稱),則此查詢將傳回圖層中的每個執行個體。IPTest在此範例中,layer 已知只有一個執行個體,因此配方只需要將第一個執行個體指派給
windowsserver
。針對多個執行個體,您可以取得完整清單,然後列舉它們。 -
將具有 IP 地址的訊息新增至此執行的 Chef 日誌。
windowsserver
物件是ipaddress
屬性設定為執行個體之公有 IP 地址的雜湊表,因此您可以將後續配方程式碼中的該地址呈現為windowsserver[:ipaddress]
。配方會將對應的字串插入至訊息,並將其新增至 Chef 日誌。 -
使用
file
資源建立 IP 地址為C:\tmp\addresses.txt
的檔案。資源的
content
屬性指定要新增至檔案的內容,在此情況下即公有 IP 地址。
-
-
建立
.zip
存檔nodesearch
,將存檔上傳到 S3 儲存貯體,將歸檔設為公開,並記錄存檔URL。傳遞至 Amazon S3 儲存貯體的內容可能包含客戶內容。如需移除敏感資料的詳細資訊,請參閱如何清空 S3 儲存貯體?或如何刪除 S3 儲存貯體?。
您現在可以安裝技術指南,並執行配方。
安裝技術指南並執行配方
-
編輯堆疊以啟用自訂技術指南,然後指定下列設定。
-
存放庫類型 — S3 存檔
-
存儲庫 URL-您之前記錄的食譜存檔 URL
接受其他設定的預設值,然後選擇 Save (儲存) 以更新堆疊組態。
-
-
執行更新自訂技術指南堆疊命令,以在堆疊執行個體上安裝最新版的自訂技術指南 (包括線上執行個體)。如果存在舊版的技術指南,則此命令會予以覆寫。
-
更新自訂食譜完成之後,執行「執行方法」堆疊命令,並將要執行的方法設定為來執行方案。
nodesearch::default
此命令會啟動 Chef 執行,內含包含您配方的回合清單。保留 execute_recipes 頁面的開啟狀態。
成功執行配方之後,您就可以驗證配方。
驗證 nodesearch
-
檢查 Chef 日誌中的最新 execute_recipes 事件。在 [執行中命令 execute_recipes] 頁面上,選擇 iptest1 執行個體的 [記錄檔] 資料欄中的 [顯示],以顯示記錄。向下捲動以在接近底端的位置找到您的日誌訊息,這看起來與下列類似。
... [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: **********The public IP address is: '192.0.0.1'********** [2015-05-13T18:55:47+00:00] INFO: Processing directory[C:\tmp] action create (nodesearch::default line 1) [2015-05-13T18:55:47+00:00] INFO: Processing file[C:\tmp\addresses.txt] action create (nodesearch::default line 10) ...
-
用RDP於登入執行個體並檢查的內容
C:\tmp\addresses.txt
。