翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Windows スタックでのノード検索インデックスの使用
重要
- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム AWS re:Post
注記
この例では、「Windows インスタンスでのレシピの実行」の例を実行済みであることを前提としています。実行済みでない場合は、最初にその例を実行する必要があります。特に、インスタンスRDPへのアクセスを有効にする方法について説明します。
1 つのインスタンスが属するカスタムレイヤーから成る Windows スタックに基づいています。Chef の検索で node
検索インデックスを使用してサーバーのパブリック IP アドレスを取得し、アドレスを C:\tmp
ディレクトリのファイルに保存します。以下に、この例のスタックを作成する方法を簡単に示します。詳細については、「新しいスタックを作成する」を参照してください。
Stack を作成する
-
を開きますAWS OpsWorks スタックコンソール
でスタックの追加 を選択します。 -
以下の設定を指定し、その他の設定はデフォルト値を受け入れて、[Add Stack] を選択します。
-
名前 – NodeSearch
-
リージョン – 米国西部 (オレゴン)
この例はいずれのリージョンでも動作しますが、チュートリアルでは米国西部 (オレゴン) を使用することをお勧めします。
-
Default operating system (デフォルトのオペレーティングシステム) – Microsoft Windows Server 2012 R2
-
-
[Add a layer] を選択し、以下の設定を使用してスタックにカスタムレイヤーを追加します。
-
名前 – IPTest
-
Short name (短縮名) – iptest
-
-
デフォルト設定の 24/7 t2.micro インスタンスをIPTestレイヤーに追加し、 を起動します。そのインスタンスの名前は iptest1 になります。
AWS OpsWorks スタックは、このインスタンスに自動的に
AWS-OpsWorks-RDP-Server
を割り当てます。これにより、承認されたユーザーはインスタンスにログインできます。 -
アクセス許可を選択し、 を編集し、SSH/RDP と sudo/admin を選択します。通常のユーザーは、インスタンスにログインするために、
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レイヤー内のすべてのインスタンスを返します。この例では、レイヤーのインスタンスは 1 つのみであることがわかっているため、レシピによって最初のインスタンスが
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 バケットを削除する方法」を参照してください。
これで、クックブックをインストールし、レシピを実行できるようになりました。
クックブックをインストールし、レシピを実行するには
-
カスタムクックブックを有効にするようにスタックを編集し、以下の設定を指定します。
-
Repository type (リポジトリタイプ) – S3 Archive (アーカイブ)
-
リポジトリ URL — 前に記録URLしたクックブックアーカイブ
その他の設定ではデフォルト値を受け入れ、[Save] を選択してスタック設定を更新します。
-
-
[Update Custom Cookbooks] スタックコマンドを実行します。カスタムクックブックの最新バージョンがスタックのインスタンス(オンラインインスタンスを含む)にインストールされます。以前のバージョンのクックブックがある場合は、このコマンドによって上書きされます。
-
カスタムクックブックの更新が終了したら、実行するレシピを
nodesearch::default
に設定してレシピの実行スタックコマンドを実行することで、レシピを実行します。このコマンドによって Chef 実行が開始され、レシピで構成される実行リストが渡されます。execute_recipes ページを開いたままにします。
レシピが正常に実行された後で、それを検証できます。
nodesearch を検証するには
-
最新の execute_recipes イベントについて Chef ログを調べます。[Running command execute_recipes page] (コマンドexecute_recipes実行ページ) で、iptest1 インスタンスの [Log] (ログ) 列の [show] (表示) を選択すると、ログが表示されます。下にスクロールすると、末尾近くに以下のようなログメッセージが見つかります。
... [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
。