View a markdown version of this page

在 Windows OpsWorks Stacks 上使用 Stacks 特定的搜尋索引 - AWS OpsWorks

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

在 Windows OpsWorks Stacks 上使用 Stacks 特定的搜尋索引

重要

AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問,請透過 AWS re:Post 或透過 AWS Premium Support 聯絡 AWS 支援 團隊。

注意

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

OpsWorks 除了 之外, Stacks 還提供下列搜尋索引node

  • aws_opsworks_stack – 堆疊組態。

  • aws_opsworks_layer – 堆疊的 layer 組態。

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

  • aws_opsworks_app – 堆疊的應用程式組態。

  • aws_opsworks_user – 堆疊的使用者組態。

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

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

注意

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

此範例示範如何使用 OpsWorks Stacks 索引來擷取 OpsWorks Stacks 特定屬性的值。它根據自訂 layer 具有一個執行個體的簡單 Windows 堆疊。它使用 Chef 搜尋來取得執行個體的 OpsWorks Stacks ID,並將結果放入 Chef 日誌中。

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

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

    • 名稱 – IDSearch

    • 區域 – 美國西部 (奧勒岡)

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

    • 預設作業系統 – Microsoft Windows Server 2012 R2

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

    • 名稱 – IDCheck

    • 簡短名稱 – IDcheck

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

    OpsWorks Stacks 會自動指派給AWS-OpsWorks-RDP-Server此執行個體。 啟用 RDP 存取 說明如何將傳入規則新增至此安全群組,以允許授權使用者登入執行個體。

  4. 選擇 Permissions (許可),並選擇 Edit (編輯),然後選擇 SSH/RDPsudo/admin。除了 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。如果您使用預設主題 (這會將整數附加至 layer 的短名來建立主機名稱),則此查詢將會傳回 IDCheck layer 中的每個執行個體。在此範例中,layer 已知只有一個執行個體,因此配方只需要將第一個執行個體指派給 windowsserver。針對多個執行個體,您可以取得完整清單,然後列舉它們。

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

    執行個體屬性基本上是雜湊資料表,且執行個體的 Stacks ID OpsWorks 會指派給 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 ...