第9章 インスタンスへのメタデータの追加
Compute (nova) サービスは、メタデータを使用してインスタンスの起動時に設定情報を渡します。インスタンスは、コンフィグドライブまたはメタデータサービスを使用してメタデータにアクセスすることができます。
- コンフィグドライブ
- コンフィグドライブは、インスタンスのブート時にアタッチすることのできる特別なドライブです。コンフィグドライブは読み取り専用ドライブとしてインスタンスに提示されます。インスタンスはこのドライブをマウントしてそこからファイルを読み取り、通常メタデータサービスから利用する情報を取得することができます。
- メタデータサービス
-
Compute サービスは、REST API としてメタデータサービスを提供します。これを使用して、インスタンス固有のデータを取得することができます。インスタンスは、
169.254.169.254
またはfe80::a9fe:a9fe
からこのサービスにアクセスします。
9.1. インスタンスメタデータの種別
クラウドユーザー、クラウド管理者、および Compute サービスは、メタデータをインスタンスに渡すことができます。
- クラウドユーザーが提供するデータ
- クラウドユーザーは、インスタンスがブート時に実行するシェルスクリプトなど、インスタンスを起動する際に使用する追加データを指定することができます。クラウドユーザーは、インスタンスを作成または更新する際に、ユーザーデータ機能を使用し、キー/値のペアを必要な属性として渡すことで、データをインスタンスに渡すことができます。
- クラウド管理者が提供するデータ
RHOSP 管理者は、ベンダーデータ機能を使用してデータをインスタンスに渡します。Compute サービスの提供するベンダーデータモジュール
StaticJSON
およびDynamicJSON
により、管理者はメタデータをインスタンスに渡すことができます。-
StaticJSON
:(デフォルト) 全インスタンスで共通のメタデータに使用します。 -
DynamicJSON
: 各インスタンスで異なるメタデータに使用します。このモジュールは外部の REST サービスにリクエストを行い、インスタンスに追加するメタデータを決定します。
ベンダーデータの設定は、インスタンスの以下の読み取り専用ファイルのいずれかにあります。
-
/openstack/{version}/vendor_data.json
-
/openstack/{version}/vendor_data2.json
-
- Compute サービスが提供するデータ
- Compute サービスはメタデータサービスの内部実装を使用して、要求されたインスタンスのホスト名やインスタンスが属するアベイラビリティーゾーン等の情報をインスタンスに渡します。この操作はデフォルトで実施され、クラウドユーザーまたは管理者が設定を行う必要はありません。