Sun N1 Service Provisioning System では、特定の条件を満たすホストだけにプラグインの動作を制限できます。ホストの制限は、次の 3 通りのメカニズムで行うことができます。
特定のホストタイプを定義する。ホストタイプは、一連の共通する属性でバインドされたサーバーの基本クラスを定義します。たとえば、Solaris 10 大域ゾーンとみなされるサーバーを指定するホストタイプを定義できます。
ホストセットを定義する。ホストセットは、1 つ以上の共通の属性 (物理的な場所や機能グループなど) を共有するホストを論理的にグループ化したものです。ホストセットを使用すると、セット内の全ホストを簡単にすばやく更新できます。ホストセットを使用してインストールを比較することもできます。
ホスト検索を定義する。ホスト検索は、ホストデータベースから、特定の属性がクエリーと一致するホストの一覧を取得します。ホスト検索を使用して、特定のホストタイプと一致するホストや、特定のアプリケーションが実行されているホストを検索できます。
この 3 通りのホストの制限は、このあとの例に示すように、プラグイン記述子ファイルで定義します。
次の例では、Solaris コンテナで使用する 2 種類のホストタイプを定義しています。1 つは大域ゾーン用でもう 1 つはローカルゾーン用です。実際の hostType 名にはプラグイン名が付加されます。ユーザーがタイプ com.sun.solaris#global_zone のホストを作成するときは、4 つの属性とそれぞれのデフォルト値を指定します。これに対して、com.sun.solaris#local_zone ホストタイプにはユーザー定義の属性を関連付けません。
<hostType name="global_zone" description="a physical host from which partitioned local zones can be created"> <varList> <var name="local_zone_base_path" default="/export/zones"/> <var name="local_zone_connection_type" default="RAW"/> <var name="local_zone_port" default="1131"/> <var name="local_zone_advanced_params" default=" "/> </varList> </hostType> <hostType name="local_zone" description="a physical host that is created out of the larger global_zone"/>
次の例では、大域ゾーンを含むホストセットを定義しています。ホストセットの実際の内容は、参照しているホスト検索の実行時に指定されます。
<hostSet name="global_zones" description="Solaris global zones"> <hostSearchRef name="global_zones"/>
次の例では、すべての大域ゾーンを検索するホスト検索を定義しています。この検索では、次の条件を満たすすべてのホストの結果が返されます。
Solaris 10 オペレーティングシステムを実行している
ホストタイプが com.sun.solaris#global_zone である
リモートエージェントを実行している
仮想ホストではなく物理ホストである
<hostSearch name="global_zones" description="Solaris global zones"> <criteriaList> <criteria name="sys.OS" pattern="SunOS"/> <criteria name="sys.OSVersion" pattern="5.10"/> <criteria name="sys.hostType" pattern="com.sun.solaris#global_zone"/> </criteriaList> <appTypeCriteria ra="true"/> <physicalCriteria physical="true"/> </hostSearch>