翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Windows OpsWorks スタックでのスタック固有の検索インデックスの使用
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、AWS re:Post
注記
この例では、「Windows インスタンスでのレシピの実行」の例を実行済みであることを前提としています。実行済みでない場合は、最初にその例を実行する必要があります。特に、インスタンスへの RDP アクセスを有効にする方法について説明しています。
OpsWorks スタックには、 に加えて以下の検索インデックスが用意されていますnode
。
-
aws_opsworks_stack
– スタック設定。 -
aws_opsworks_layer
– スタックのレイヤー設定。 -
aws_opsworks_instance
– スタックのインスタンス設定。 -
aws_opsworks_app
– スタックのアプリケーション設定。 -
aws_opsworks_user
– スタックのユーザー設定。 -
aws_opsworks_rds_db_instance
– 登録済み RDS インスタンスの接続情報。
これらのインデックスにはいくつかの標準 Chef 属性が含まれていますが、主に OpsWorks スタック固有の属性を取得することを目的としています。例えば、aws_opsworks_instance
には、status
など、インスタンスのステータスを渡す online
属性が含まれます。
注記
可能であれば node
を使用して、レシピが標準の Chef 手法に従うようにすることをお勧めします。例については、Windows スタックでのノード検索インデックスの使用を参照してください。
この例では、 スタックインデックスを使用して OpsWorks OpsWorks スタック固有の属性の値を取得する方法を示します。この例は、1 つのインスタンスが属するカスタムレイヤーから成る Windows スタックに基づいています。Chef 検索を使用してインスタンスの OpsWorks スタック ID を取得し、結果を Chef ログに配置します。
以下に、この例のスタックを作成する方法を簡単に示します。詳細については、「新しいスタックを作成する」を参照してください。
Stack を作成する
-
OpsWorks スタックコンソール
を開いて [+ Stack] を選択します。以下の設定を指定し、その他の設定はデフォルト値を受け入れて、[Add Stack] を選択します。 -
Name (名前) – IDSearch
-
リージョン – 米国西部 (オレゴン)
この例はいずれのリージョンでも動作しますが、チュートリアルでは米国西部 (オレゴン) を使用することをお勧めします。
-
Default operating system (デフォルトのオペレーティングシステム) – Microsoft Windows Server 2012 R2
-
-
[Add a layer] を選択し、以下の設定を使用してスタックにカスタムレイヤーを追加します。
-
Name (名前) – IDCheck
-
Short name (短縮名) – idcheck
-
-
デフォルト設定で IDCheckレイヤーに 24/7 t2.micro インスタンスを追加し、起動します。そのインスタンスの名前は iptest1 になります。
OpsWorks スタックは、このインスタンスに自動的に
AWS-OpsWorks-RDP-Server
を割り当てます。 RDP アクセスの有効化 は、許可されたユーザーがインスタンスにログインできるようにするインバウンドルールをこのセキュリティグループに追加する方法について説明します。 -
[Permissions]、[Edit]、[SSH/RDP]、[sudo/admin] の順に選択します。通常のユーザーは、インスタンスにログインするために、
AWS-OpsWorks-RDP-Server
セキュリティグループに加えて、この権限が必要です。注記
管理者としてログインすることもできますが、それには別の手順が必要です。詳細については、「RDP でのログイン」を参照してください。
クックブックをセットアップするには
-
idcheck
という名前のディレクトリを作成し、そのディレクトリに移動します。 -
以下の内容で
metadata.rb
ファイルを作成し、opstest
に保存します。name "idcheck" version "0.1.0"
-
recipes
内にidcheck
ディレクトリを作成し、以下のレシピを保存したdefault.rb
ファイルをそのディレクトリに追加します。windowsserver = search(:aws_opsworks_instance, "hostname:idcheck*").first Chef::Log.info("**********The public IP address is: '#{windowsserver[:instance_id]}'**********")
このレシピでは、
aws_opsworks_instance
検索インデックスを持つChef検索を使用して、スタック内のホスト名がidcheck
で始まる各インスタンスの [instance attributes (インスタンス属性)] を取得します。レイヤーの短縮名に整数を追加することでホスト名を作成する、デフォルトのテーマを使用する場合、このクエリによって IDCheckレイヤーのすべてのインスタンスが返されます。この例では、レイヤーのインスタンスは 1 つのみであることがわかっているため、レシピによって最初のインスタンスがwindowsserver
に渡されます。複数のインスタンスがある場合は、それらのインスタンスのリストを取得できます。レシピでは、スタックにこのホスト名のインスタンスが 1 つしかないことがわかっているため、最初の結果が正しくなります。スタックに複数のインスタンスがある場合は、他の属性で検索すると、複数の結果が返されることがあります。インスタンスの属性のリストについては、「インスタンスデータバッグ (aws_opsworks_instance)」を参照してください。
インスタンス属性は基本的にハッシュテーブルであり、インスタンスの OpsWorks スタック ID は
instance_id
属性に割り当てられるため、ID を と参照できますwindowsserver[:instance_id]
。レシピによって、対応する文字列がメッセージに挿入され、Chef ログに追加されます。 -
ipaddress
クックブックの.zip
アーカイブを作成し、アーカイブを Amazon S3 バケットにアップロードして、アーカイブの URL を記録しておきます。クックブックリポジトリの詳細については、「クックブックリポジトリ」を参照してください。Amazon S3 バケットに配信されるコンテンツには、カスタマーコンテンツが含まれている場合があります。機密データの削除の詳細については、「S3 バケットを空にする方法」または「S3 バケットを削除する方法」を参照してください。
これで、クックブックをインストールし、レシピを実行できるようになりました。
クックブックをインストールし、レシピを実行するには
-
カスタムクックブックを有効にするようにスタックを編集し、以下の設定を指定します。
-
Repository type (リポジトリタイプ) – S3 Archive (アーカイブ)
-
Repository URL (リポジトリの URL) - 前の手順で記録したクックブックアーカイブ URL
その他の設定ではデフォルト値を受け入れ、[Save] を選択してスタック設定を更新します。
-
-
[Update Custom Cookbooks] スタックコマンドを実行します。カスタムクックブックの最新バージョンがスタックのインスタンス(オンラインインスタンスを含む)にインストールされます。以前のバージョンのクックブックがある場合は、このコマンドによって上書きされます。
-
カスタムクックブックの更新が終了したら、実行するレシピ を
idcheck::default
に設定してレシピの実行スタックコマンドを実行することで、レシピを実行します。このコマンドによって Chef 実行が開始され、レシピで構成される実行リストが渡されます。execute_recipes ページを開いたままにします。
レシピが正常に実行された後、最新の execute_recipes イベントの Chef ログを調べることで、その結果を確認できます。[Running command execute_recipes page] (コマンド execute_recipes 実行ページ) で、iptest1 インスタンスの [Log] (ログ) 列の [show] (表示) を選択すると、ログが表示されます。下にスクロールすると、末尾近くに以下のようなログメッセージが見つかります。
... [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 ...