6.3. 組織へのサブスクリプションのアタッチ

6.3.1. マニフェスト

「オンプレミスサブスクリプション管理アプリケーションの管理」 の冒頭で簡単に説明したとおり、カスタマーポータルのサブスクリプション管理におけるサブスクリプション管理アプリケーションの組織と、Subscription Asset Manager のようなオンプレミスアプリケーションにおける組織の定義には直接の関係があります。この関係は、カスタマーポータルのサブスクリプション管理がローカルで管理するために、Red Hat からオンプレミスアプリケーションにサブスクリプションを転送するために使用する方法です。
この転送されたサブスクリプションのブロックは、サブスクリプション管理アプリケーションの組織マニフェスト に一覧表示されます。このマニフェストは、カスタマーポータルのサブスクリプション管理から直接ダウンロードする、サブスクリプション管理アプリケーションの組織エントリーの ZIP アーカイブで、オンプレミスアプリケーションにアップロードします。

重要

組織のサブスクリプションに行うすべての変更は、カスタマーポータルのサブスクリプション管理におけるサブスクリプション管理アプリケーションの組織エントリーに割り当てられているサブスクリプションに適用されます。その後、マニフェストを再生成してダウンロードし、アプリケーションに再アップロードします。
マニフェストは、ディレクトリーと JSON ファイルを集めたもので、その JSON ファイルには、サブスクリプション、エンタイトルメント証明書、製品、サブスクリプション管理アプリケーションの組織のルール一覧が含まれます。
manifest.zip
      |
      |- consumer_export.zip
                   |
		   |- export/
		         |
			 |- consumer_types/
			 |
			 |- entitlements/
			 |
			 |- entitlement_certificates/
			 |
			 |- products/
			 |
			 |- rules/
			 |
			 |- consumer.json
			 |
			 |- meta.json
consumer.json と meta.json

この JSON ファイルには、アプリケーションの組織のエントリー情報 (UUID) と、マニフェストの情報 (バージョンおよび作成日) が含まれています。

consumer_types/

consumer_types/ には、サポートされているアプリケーションの各タイプに対して、JSON ファイルが 1 つずつ含まれています。JSON ファイルには、アタッチしているサブスクリプションのタイプが示されています。たとえば、Subscription Asset Manager の場合は、sam.jsonmanifest 値が true になります。

{"id":"5","label":"sam","manifest":true}
entitlements/

entitlements/ には、アプリケーション組織に割り当てられる各サブスクリプションの JSON ファイルが含まれています。各フィールドの名前は、UUID.json と呼ばれています。

このファイルには、サブスクリプションの完全な情報が含まれています。たとえば、コントラクト番号、プール ID、コントラクトの開始日と終了日、サブスクリプションのキーと証明書、同梱されている各製品の製品 ID、数量、サブスクリプションに関連するその他の情報です。
たとえば、以下はサブスクリプション JSON 内の Red Hat Enterprise Linux 製品 1 つ関する情報です。
...
{"id":"8a878dcd3520d43501353f6f98f911e9","productName":"Red Hat Enterprise Linux Server","productId":"69","updated":"2012-02-02T18:59:32.000+0000","created":"2012-02-02T18:59:32.000+0000"}],"endDate":"2012-10-13T03:59:59.000+0000","quantity":50,"productName":"Red Hat Enterprise Linux Server, Premium (4 sockets) (Up to 4 guests)","contractNumber":"2625891","accountNumber":"1506376","productId":"RH0153936","subscriptionId":"2267347","consumed":31,"exported":30,"sourceEntitlement":null,"activeSubscription":true,"restrictedToUsername":null,"productAttributes":[{"productId":"RH0153936","name":"support_type","value":"L1-L3","id":"8a878dcd3520d43501353f6f98f811de","updated":"2012-02-02T18:59:32.000+0000","created":"2012-02-02T18:59:32.000+0000"}
...
entitlement_certificates/

entitlement_certificates/ には、Base64 エンコードされた BLOB のエンタイトルメント証明書がある PEM ファイルが各サブスクリプションに含まれています。

products/

products/ には、サブスクリプションに同梱される各製品の JSON ファイルが含まれています。これには、サポートされているバージョン、コンテンツセット、依存関係、およびリポジトリーに関する詳しい情報、その他の製品固有 (必ずしもサブスクリプション固有ではない) の情報が含まれています。

以下に、基本的な Red Hat Enterprise Linux 製品がある 1 バージョンの JSON ファイルの一部を例として示します。
...
{"name":"Red Hat Enterprise Linux Server","id":"69","attributes":[{"name":"type","value":"SVC"},{"name":"arch","value":"i386,ia64,x86_64"},{"name":"name","value":"Red Hat Enterprise Linux Server"}],"multiplier":1,"href":"/products/69","productContent":[{"content":{"name":"Red Hat Enterprise Linux 5 Server Beta (Source ISOs)","id":"861","type":"file","vendor":"Red Hat","modifiedProductIds":[],"contentUrl":"/content/beta/rhel/server/5/$releasever/$basearch/source/iso","label":"rhel-5-server-beta-source-isos","gpgUrl":"http://","metadataExpire":86400,"requiredTags":"rhel-5-server"},"enabled":false}
...
rules/

rules/ には、JavaScript ファイルが 1 つ含まれ、バックエンドの Red Hat サブスクリプション管理サービスとやりとりするためにアプリケーションが使用する関数を設定します。