20.2. バンドルのデプロイ
バンドルをデプロイすると、バンドルバージョンが特定の宛先に送信されます。
cliRoot/rhq-remoting-cli-4.9.0.JON320GA/samples/modules/bundles.js ファイルに関数があります。deployBundleこれは非常に簡単なものですが、最初に情報を取得する必要があります。
宛先の ID を取得します。これは、名前で宛先を検索します。
rhqadmin@localhost:7080$ var destinationName = "New Destination"
rhqadmin@localhost:7080$ var destcrit = new BundleDestinationCriteria()
rhqadmin@localhost:7080$ destcrit.addFilterName(destinationName)
var dest = BundleManager.findBundleDestinationsByCriteria(destcrit)
次に、デプロイするバンドルバージョンの ID 番号を取得します。最新 バージョンだけでなく、すべてのバージョンをデプロイできます。このスクリプトは、バンドルのすべてのバージョンとその ID 番号を出力します。
rhqadmin@localhost:7080$ var crit = new BundleVersionCriteria()
rhqadmin@localhost:7080$ crit.addFilterBundleName(name)
rhqadmin@localhost:7080$ var vers = BundleManager.findBundleVersionsByCriteria(crit)
rhqadmin@localhost:7080$ if( vers != null ) { \
rhqadmin@localhost:7080$ if( vers.size() > 1 ) { \
rhqadmin@localhost:7080$ for( i =0; i < vers.size(); ++i) { \
rhqadmin@localhost:7080$ ver = vers.get(i); \
rhqadmin@localhost:7080$ println("Version: " + ver.version + " " + "ID: " + ver.id) \
rhqadmin@localhost:7080$ } \
rhqadmin@localhost:7080$ } \
rhqadmin@localhost:7080$ else if( vers.size() == 1 ) { \
rhqadmin@localhost:7080$ ver = vers.get(0); \
rhqadmin@localhost:7080$ println("Version: " + ver.version + + " " + "ID: " + ver.id) \
rhqadmin@localhost:7080$ } \
rhqadmin@localhost:7080$ }
Version: 2.0 ID: 10021
Version: 1.0 ID: 10012
この 2 つの ID 番号を使用して、バンドルをデプロイすることができます。最初のパラメーターは宛先 ID、バンドルバージョン ID、バンドル設定にトークンがある場合には設定オブジェクトです。この例では、プロパティーは渡されず、値は null になります。設定の詳細については、
bundles.js ファイルのコメントに表示され、一般的な設定情報が表示され 「シンプル設定プロパティーの変更」 ます。
rhqadmin@localhost:7080$ deployBundle(dest.get(0).id,10021,null,'my description',true)
BundleDeployment:
bundleVersion: BundleVersion[id=10021,name=null,version=null]
configuration: Configuration[id=15021]
ctime: 1337286719259
description: my description
destination: BundleDestination[id=10021, bundle=driftBundle, group=Linux Group - Thu May 10 15:10:28 EDT 2012, name=NewDestination]
duration: 0
errorMessage:
id: 10051
live: true
mtime: 1337286719259
name: Deployment [1] of Version [2.0] to [NewDestination]
replacedBundleDeploymentId:
resourceDeployments: [BundleResourceDeployment: bdd=[BundleDeployment[id=10051, name=Deployment [1] of Version [2.0] to [new-test]]], resource=[Resource[id=10001, uuid=535b3f54-0bd8-4653-bdd3-323ea69b98fd, type={Platforms}Linux, key=gs-dl585g2-01.rhts.eng.bos.redhat.com, name=server.example.com, parent=<null>, version=Linux 2.6.32-220.el6.x86_64]]]
status: Failure
subjectName: rhqadmin
tags:
The
deployBundle 関数は 2 つの手順で実行され、デプロイメントを管理します。これは util.js ファイルの関数の 1 つを使用してデプロイメント設定(送信されている場合)を適切なハッシュに変換します。
... 8< ...
var deploymentConfig = deploymentConfiguration;
if (!(deploymentConfiguration instanceof Configuration)) {
deploymentConfig = asConfiguration(deploymentConfiguration);
}
次にデプロイメント(リモート API を使用)を作成してから、デプロイメントをスケジュールします。
... 8< ...
var deployment = BundleManager.createBundleDeployment(bundleVersionId, destinationId, description, deploymentConfig);
deployment = BundleManager.scheduleBundleDeployment(deployment.id, isCleanDeployment);
... 8< ...