在 Windows 堆疊上使用搜尋索引節點 - AWS OpsWorks

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

在 Windows 堆疊上使用搜尋索引節點

重要

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

注意

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

此範例根據具有單一自訂 layer 和一個執行個體的 Windows 堆疊。它搭配使用 Chef 搜尋與 node 搜尋索引來取得伺服器的公有 IP 地址,並將地址放入 C:\tmp 目錄的檔案中。以下簡短地彙總如何針對此範例建立堆疊。如需詳細資訊,請參閱 建立新的堆疊

建立堆疊
  1. 開啟 AWS OpsWorks Stacks 主控台,然後選擇 Add Stack (新增堆疊)

  2. 指定下列設定,並接受其他設定的預設值,然後選擇 Add Stack (新增堆疊)

    • 名稱 — NodeSearch

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

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

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

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

    • 名稱 — IPTest

    • 短名稱 — 最佳

  4. 新增全年無休 t2.micro 執行個體 (具有預設設定) 至 IPTest layer,以及啟動它。它將會命名為 iptest1。

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

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

    注意

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

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

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

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

  4. 使用下列配方建立 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

    配方會執行下列動作:

    1. 使用目錄資源來建立檔案的 C:\tmp 目錄。

      如需此資源的詳細資訊,請參閱範例 3:建立目錄

    2. 搭配使用 Chef 搜尋與 node 搜尋索引,以取得主機名稱開頭為 iptest 的節點 (執行個體) 清單。

      如果您使用預設主題 (這會將整數附加至 layer 的短名來建立主機名稱),則此查詢將會傳回 IPTest layer 中的每個執行個體。在此範例中,layer 已知只有一個執行個體,因此配方只需要將第一個執行個體指派給 windowsserver。針對多個執行個體,您可以取得完整清單,然後列舉它們。

    3. 將具有 IP 地址的訊息新增至此執行的 Chef 日誌。

      windowsserver 物件是 ipaddress 屬性設定為執行個體之公有 IP 地址的雜湊表,因此您可以將後續配方程式碼中的該地址呈現為 windowsserver[:ipaddress]。配方會將對應的字串插入至訊息,並將其新增至 Chef 日誌。

    4. 使用 file 資源建立 IP 地址為 C:\tmp\addresses.txt 的檔案。

      資源的 content 屬性指定要新增至檔案的內容,在此情況下即公有 IP 地址。

  5. 建立 nodesearch.zip 封存、將封存上傳至 S3 儲存貯體將封存設為公有,並記錄封存的 URL。

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

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

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

    • 存放庫類型S3 存檔

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

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

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

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

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

驗證 nodesearch
  1. 檢查 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) ...
  2. 使用 RDP 登入執行個體,並檢查 C:\tmp\addresses.txt 的內容。