使用 AWS OpsWorks Windows 堆棧上的特定於堆棧的搜索索引 - AWS OpsWorks

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

使用 AWS OpsWorks Windows 堆棧上的特定於堆棧的搜索索引

重要

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

注意

此範例假設您已完成在 Windows 執行個體上執行配方範例。否則,您應該先執行該範例。特別是,它描述了如何啟用對實例的RDP訪問。

AWS OpsWorks Stack 除了提供下列搜尋索引node

  • aws_opsworks_stack— 堆疊組態。

  • aws_opsworks_layer— 堆疊的層組態。

  • aws_opsworks_instance— 堆疊的執行個體組態。

  • aws_opsworks_app— 堆疊的應用程式設定。

  • aws_opsworks_user— 堆疊的使用者設定。

  • aws_opsworks_rds_db_instance— 已註冊RDS執行個體的連線資訊。

這些索引包括一些標準的 Chef 屬性,但主要用於檢索 AWS OpsWorks 堆疊特定的屬性。例如,aws_opsworks_instance 包括 status 屬性,以提供執行個體的狀態 (例如 online)。

注意

建議的做法是盡可能使用 node,在讓您的配方與標準 Chef 使用量一致。如需範例,請參閱在 Windows 堆疊上使用搜尋索引節點

此範例顯示如何使用 AWS OpsWorks 堆疊索引以擷取 AWS OpsWorks 特定於堆棧的屬性。它根據自訂 layer 具有一個執行個體的簡單 Windows 堆疊。它使用 Chef 搜索來獲取實例 AWS OpsWorks 堆疊 ID 並將結果放入 Chef 記錄中。

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

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

    • 名稱 — IDSearch

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

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

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

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

    • 名稱 — IDCheck

    • 短名稱 — 識別檢查

  3. 將具有預設設定的全年無休 t2.micro 執行個體新增至圖IDCheck層並啟動它。它將會命名為 iptest1。

    AWS OpsWorks 堆疊會自動指派AWS-OpsWorks-RDP-Server給這個執行個體。 啟用RDP存取說明如何將輸入規則新增至允許授權使用者登入執行個體的安全性群組。

  4. 選擇權限,然後選擇編輯,然後選擇 SSH/RDPsudo/管理員。除了 AWS-OpsWorks-RDP-Server 安全群組之外,一般使用者還需要有此授權,才能登入執行個體。

    注意

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

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

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

    name "idcheck" version "0.1.0"
  3. idcheck 內建立 recipes 目錄,並將 default.rb 檔案新增至包含下列配方的目錄。

    windowsserver = search(:aws_opsworks_instance, "hostname:idcheck*").first Chef::Log.info("**********The public IP address is: '#{windowsserver[:instance_id]}'**********")

    方案使用 Chef 搜尋搭配aws_opsworks_instance搜尋索引,以取得堆疊中每個執行個體的執行個體屬性,其主機名稱開頭為idcheck。如果您使用預設主題 (透過將整數附加到圖層的簡短名稱來建立主機名稱),則此查詢將傳回圖層中的每個執行個體。IDCheck在此範例中,layer 已知只有一個執行個體,因此配方只需要將第一個執行個體指派給 windowsserver。針對多個執行個體,您可以取得完整清單,然後列舉它們。

    配方會利用具有此主機名稱之堆疊中只有一個執行個體的事實,因此第一個結果就是正確的結果。如果您的堆疊具有多個執行個體,則搜尋其他屬性可能會傳回多個結果。如需執行個體屬性的清單,請參閱執行個體資料包 (aws_opsworks_instance)

    實例屬性基本上是一個哈希表,並且該實例的 AWS OpsWorks 堆棧 ID 被分配給instance_id屬性,因此您可以將 ID 引用為windowsserver[:instance_id]。配方會將對應的字串插入至訊息,並將其新增至 Chef 日誌。

  4. 建立ipaddress食譜的.zip存檔、將存檔上傳到 Amazon S3 儲存貯體,然後記錄存檔。URL如需技術指南儲存庫的詳細資訊,請參閱技術指南儲存庫

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

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

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

    • 存放庫類型S3 存檔

    • 存儲庫 URL-您之前記錄的食譜存檔 URL

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

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

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

成功執行配方之後,您可以檢查 Chef 日誌中的最新 execute_recipes 事件來驗證。在 [執行中命令 execute_recipes] 頁面上,選擇 iptest1 執行個體的 [記錄檔] 資料欄中的 [顯示],以顯示記錄。向下捲動以在接近底端的位置找到您的日誌訊息,這看起來與下列類似。

... [2015-05-13T20:03:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache. [2015-05-13T20:03:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache. [2015-05-13T20:03:47+00:00] INFO: **********The instance ID is: 'i-8703b570'********** [2015-05-13T20:03:47+00:00] INFO: Chef Run complete in 0.312518 seconds ...