翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
使用 AWS OpsWorks Windows スタックのスタック固有の検索インデックス
重要
- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム AWS re:Post
注記
この例では、「Windows インスタンスでのレシピの実行」の例を実行済みであることを前提としています。実行済みでない場合は、最初にその例を実行する必要があります。特に、インスタンスRDPへのアクセスを有効にする方法について説明します。
AWS OpsWorks スタックは、 に加えて以下の検索インデックスを提供します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 スタック固有の属性。この例は、1 つのインスタンスが属するカスタムレイヤーから成る Windows スタックに基づいています。Chef 検索を使用してインスタンスの を取得します。 AWS OpsWorks スタックは ID を指定し、結果を Chef ログに配置します。
以下に、この例のスタックを作成する方法を簡単に示します。詳細については、「新しいスタックを作成する」を参照してください。
Stack を作成する
-
を開きますAWS OpsWorks スタックコンソール
で + スタック を選択します。以下の設定を指定し、その他の設定はデフォルト値を受け入れて、[Add Stack] を選択します。 -
名前 – IDSearch
-
リージョン – 米国西部 (オレゴン)
この例はいずれのリージョンでも動作しますが、チュートリアルでは米国西部 (オレゴン) を使用することをお勧めします。
-
Default operating system (デフォルトのオペレーティングシステム) – Microsoft Windows Server 2012 R2
-
-
[Add a layer] を選択し、以下の設定を使用してスタックにカスタムレイヤーを追加します。
-
名前 – IDCheck
-
Short name (短縮名) – idcheck
-
-
デフォルト設定の 24/7 t2.micro インスタンスをIDCheckレイヤーに追加し、 を起動します。そのインスタンスの名前は iptest1 になります。
AWS OpsWorks スタックは、このインスタンスに自動的に
AWS-OpsWorks-RDP-Server
を割り当てます。 RDP アクセスの有効化 は、許可されたユーザーがインスタンスにログインできるようにするインバウンドルールをこのセキュリティグループに追加する方法について説明します。 -
アクセス許可を選択し、 を編集し、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)」を参照してください。
インスタンス属性は基本的にハッシュテーブルであり、インスタンスの AWS OpsWorks スタック ID は
instance_id
属性に割り当てられるため、ID を と呼ぶことができますwindowsserver[:instance_id]
。レシピによって、対応する文字列がメッセージに挿入され、Chef ログに追加されます。 -
ipaddress
クックブックの.zip
アーカイブを作成し、アーカイブを Amazon S3 バケット にアップロードして、アーカイブの を記録しますURL。クックブックリポジトリの詳細については、「クックブックリポジトリ」を参照してください。Amazon S3 バケットに配信されるコンテンツには、カスタマーコンテンツが含まれている場合があります。機密データの削除の詳細については、「S3 バケットを空にする方法」または「S3 バケットを削除する方法」を参照してください。
これで、クックブックをインストールし、レシピを実行できるようになりました。
クックブックをインストールし、レシピを実行するには
-
カスタムクックブックを有効にするようにスタックを編集し、以下の設定を指定します。
-
Repository type (リポジトリタイプ) – S3 Archive (アーカイブ)
-
リポジトリ 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 ...