Terremark 自動化
下記のテンプレートは、Control Plan Editor が Cloud Express と相互動作するのに必要な呼び出しです。目次
パッケージ
Terremark vCloud のパッケージは、ここでダウンロードできます。テンプレート
vC_get_token.xml
このテンプレートは vCloud トークンを取得します。あなたの Terremark アカウントのユーザとパスワードが、入力仕様として入力されます。このサンプルは、以降のコントロールプランのノードでの仕様のため "token" と "orgId" の名前でデータエンベロープの中に vCloud トークンと orgId をセットします( 詳しくは、Control Plan Editor の データ構造 のセクションを参照してください。)。vC_get_organization
このモデルは下記を表示します。 プレース get_token は get_organization に token と orgId を渡します。このテンプレートにより、 get_organization 呼び出しからのどんな出力でもパースすることができます。vDC id、catalog および tasksLists URLs がパースできます。サンプル出力については、 Terremark インタフェース・メソッド のセクションを参照してください。
vC_get_vDC
下記は、仮想データセンタモデル(virtual data center model)取得モデルです。get_organiztion 呼び出しからの vDC ID は get_vDC 呼び出しの中で使われます。このプランの出力例を下記に示します。
vapp URL リファレンスは配列中に置かれ、以降のプレースで使用されるようデータエンベロープの中に置かれます
: -------------------------------------------------------------------------------- url=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223 body: <Vdc href="https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223" type="application/vnd.vmware.vcloud.vdc+xml" name="Miami Environment 1" xmlns="http://www.vmware.com/vcloud/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Link rel="down" href="https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/catalog" type="application/vnd.vmware.vcloud.catalog+xml" name="Miami Environment 1"/> <Link rel="down" href="https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/publicIps" type="application/xml" name="Public IPs"/> <Link rel="down" href="https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/internetServices" type="application/xml" name="Internet Services"/> <Description/> <ResourceEntities> <ResourceEntity href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13174" type="application/vnd.vmware.vcloud.vApp+xml" name="test1"/> <ResourceEntity href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/13725" type="application/vnd.vmware.vcloud.vApp+xml" name="TIStest1"/> </ResourceEntities> <AvailableNetworks> <Network href="https://services.vcloudexpress.terremark.com/api/v0.8/network/722" type="application/vnd.vmware.vcloud.network+xml" name="10.112.78.0/26"/> </AvailableNetworks> </Vdc> rel=down href=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/catalog type=application/vnd.vmware.vcloud.catalog+xml name=Miami Environment 1 rel=down href=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/publicIps type=application/xml name=Public IPs rel=down href=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/internetServices type=application/xml name=Internet Services Adding vapp 13174 Adding vapp 13725 href Miami Environment 1=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/catalog href Public IPs=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/publicIps href Internet Services=https://services.vcloudexpress.terremark.com/api/v0.8/vdc/223/internetServices Finished
vC_get_vApps
仮想アプリケーションモデル(virtual application model)の取得を下記に示します。このモデルは、get_vDC 呼び出しから渡されたすべてのアプリケーションのため get_vApp を発行します。このモデルからの出力を下記に示します。
vapp name test1 status=4 IpAddress=10.112.78.3 OSDescription=Red Hat Enterprise Linux 5 (32-bit) VirtualSystemIdentifier=test1 VirtualSystemType=vmx-07 Items: 1 virtual CPU(s) Description=Number of Virtual CPUs VirtualQuantity=1 VirtualQuantityUnits=count 512MB of memory Description=Memory Size VirtualQuantity=512 VirtualQuantityUnits=byte * 2^20 SCSI Controller 0 Description=SCSI Controller VirtualQuantity= VirtualQuantityUnits= Hard Disk 1 Description= VirtualQuantity=10485760 VirtualQuantityUnits= vapp name TIStest1 status=2 IpAddress=10.112.78.4 OSDescription=Red Hat Enterprise Linux 5 (32-bit) VirtualSystemIdentifier=TIStest1 VirtualSystemType=vmx-07 Items: 2 virtual CPU(s) Description=Number of Virtual CPUs VirtualQuantity=2 VirtualQuantityUnits=count 1024MB of memory Description=Memory Size VirtualQuantity=1024 VirtualQuantityUnits=byte * 2^20 SCSI Controller 0 Description=SCSI Controller VirtualQuantity= VirtualQuantityUnits= Hard Disk 1 Description= VirtualQuantity=10485760 VirtualQuantityUnits=
プロセスのサンプル
vC_api_test
このコントロールプランのモデルは ここから ダウンロードできます (右クリックで、XMLファイルとして保存するため save )。このサンプルはそのままで実行でき、下記を実証します:
- オペレータダイアログであなたのユーザとパスワード情報を取得します。それらをプランの中でセットする必要はありません。
- 多様な vCloud API 呼び出しを発行し、結果をコンソールにプリントします。 vCloud API 呼び出し順序を理解したい場合、これは良い参照サンプルです。
- AND-分割/結合の構造を使ったコントロールプランの並行処理(parallel processing)能力を実証します。 (詳しくは、データ構造を参照してください)
モデルの図を下記に示します。
このコントロールプランが実行されると、ダイアログボックスが表示され、あなたのユーザ ID、次のパスワードを聞きます。その後、この情報は、あなたのトークンと orgID をしゅとくするため vCloud Express API の問い合わせで使用されます。これ以降の呼び出しは、プランの中で他のメソッドに対して行われます。すべての行の出力がコンソールにプリントされます。その出力は、後続の呼び出しのために必要な情報を集めるためにパースされます。
vC_servers_list_mediator.xml
このコントロールプランのモデルは、ここからダウンロードできます (右クリックで、XMLファイルとして保存するため save )。実行する前に、 get_token の入力仕様の中で、ユーザ ID とパスワードを定義する必要があります。 このサンプルは、下記を実証します:- サーバ(や vapp)のリストとステータスが、vCloud API から読み出されます。そして、監視ステータスイベントが生成されて Tap In 監視サーバに送られます。このテンプレートを、あなたが選んだ監視システムのサーバステータス更新の送出のた
- 各 vapp の詳細なコンフィグレーションがこのモデルで問い合わせられます。必要であれば、このコンフィグレーション情報を使って他のデータベースを更新することができます。
- これは繰り返しモデル(詳しくは データ構造 のセクションを参照ください)の例で、ステータスが常にポーリングされ、更新されます。このモデルはオペレータによって停止されるまでは実行し続けます。
モデルの図を下記に示します。
vC_ops_start_server.xml
このコントロールプランのモデルはここからダウンロードできます (右クリックで、XMLファイルとして保存するため save )。このサンプルは、下記を実証します:- あなたのユーザとパスワード情報をオペレータダイアログで取得します。 それらをプランの中でセットする必要はありません。
- API から使用可能なカタログのリストを収集します。そして、このリストはダイアログボックスで表示されます。
- あなたがカタログのアイテムを選択した後、サーバがインスタンス化されます。
モデルの図を下記に示します。
そのプランが実行されると、オペレータがユーザ ID とパスワードを入力するためのダイアログボックスを表示します。カタログアイテムを集めおわると、下記のようにダイアログ・リストボックスの中にそれらのアイテムをリストします。
オペレータはこのリスト中の一つのアイテムを選択するでき、そして OK をクリックします。これにより、このサーバが彼の vCloud グリッド上でインスタンス化されます。
サーバのインスタンス化パラメータは、 "Instantiate Application" プレース内でハードコードされています。コードのセクションを下記に示します。
data = '<InstantiateVAppTemplateParams name="TIStest1" xml:lang="en" xmlns="http://www.vmware.com/vcloud/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <VAppTemplate href="'+template_uri+'"/> <InstantiationParams> <ProductSection xmlns:q1="http://www.vmware.com/vcloud/v1" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"> <Property xmlns="http://schemas.dmtf.org/ovf/envelope/1" ovf:key="password" ovf:value="secretPassword" /> <Property xmlns="http://schemas.dmtf.org/ovf/envelope/1" ovf:key="row" ovf:value="Row1" /> <Property xmlns="http://schemas.dmtf.org/ovf/envelope/1" ovf:key="group" ovf:value="Group1" /> </ProductSection> <VirtualHardwareSection xmlns:q1="http://www.vmware.com/vcloud/v1"> <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1"> <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1</InstanceID> <ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">3</ResourceType> <VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</VirtualQuantity> </Item> <Item xmlns="http://schemas.dmtf.org/ovf/envelope/1"> <InstanceID xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">2</InstanceID> <ResourceType xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">4</ResourceType> <VirtualQuantity xmlns="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData">1024</VirtualQuantity> </Item> </VirtualHardwareSection> <NetworkConfigSection> <NetworkConfig> <NetworkAssociation href="'+network_uri+'" /> </NetworkConfig> </NetworkConfigSection> </InstantiationParams> </InstantiateVAppTemplateParams> 'このセクションでは、サーバの特性を定義する instantiatevAppTemplate といっしょにポストされる XML データを示します:
- パスワード
- 行
- グループ
- ハードウェア CPU - インスタンス ID 、リソースタイプ、仮想数量 (これらフィールドの説明は vCloud のドキュメントを参照ください)
- ハードウェア Memory - インスタンス ID 、リソースタイプ、仮想数量 (これらフィールドの説明は vCloud のドキュメントを参照ください)
vC_ops_stop_server.xml
このコントロールプランのモデルは、 ここからダウンロード できます (右クリックで、XMLファイルとして保存するため save )。このサンプルは、下記を実証します:- あなたのユーザとパスワード情報をオペレータダイアログで取得します。 それらをプランの中でセットする必要はありません。
- このアカウントでインスタンス化しているサーバをリストします。
- あなたが一つのサーバを選択した後、そのサーバで power off コマンドが発行されます。
vC_ops_server_action.xml
このコントロールプランのモデルは、 ここからダウンロード できます (右クリックで、XMLファイルとして保存するため save )。このサンプルは、下記を実証します:- このアカウントでインスタンス化しているサーバをリストします。
- あなたが一つのサーバを選択した後、選択されたサーバで実行可能なアクションをリストします。
- そのアクションを実行します。
- アクションのログのため、監視システムにイベントを送ります。
プロセスが List Servers プレースをヒットしたとき、そのプランは下記のように見えるでしょう。
下記のダイアログボックスが表示され、すべての定義済みサーバがリストされます。この例では、サーバが一つだけ定義されています。
サーバを選んで、OK ボタンをクリックした後、プランは Select Action プレースに移り、下記のようなダイアログボックスが表示されます。
実行するアクションを選び、そのアクションがサーバに適用されます。アクションを実施した後、どのアクションがどのサーバに行われたかを示すよう、Tap In 監視サーバにイベントが送られます。