Img_9_lg

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 を渡します。

vC_get_org.png

このテンプレートにより、 get_organization 呼び出しからのどんな出力でもパースすることができます。vDC id、catalog および tasksLists URLs がパースできます。サンプル出力については、 Terremark インタフェース・メソッド のセクションを参照してください。

vC_get_vDC

下記は、仮想データセンタモデル(virtual data center model)取得モデルです。

vC_get_vDC.png

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)の取得を下記に示します。

vC_get_vApps.png

このモデルは、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)能力を実証します。 (詳しくは、データ構造を参照してください)

モデルの図を下記に示します。

vC_api_test.png

このコントロールプランが実行されると、ダイアログボックスが表示され、あなたのユーザ ID、次のパスワードを聞きます。その後、この情報は、あなたのトークンと orgID をしゅとくするため vCloud Express API の問い合わせで使用されます。これ以降の呼び出しは、プランの中で他のメソッドに対して行われます。すべての行の出力がコンソールにプリントされます。その出力は、後続の呼び出しのために必要な情報を集めるためにパースされます。

vC_servers_list_mediator.xml

このコントロールプランのモデルは、ここからダウンロードできます (右クリックで、XMLファイルとして保存するため save )。実行する前に、 get_token の入力仕様の中で、ユーザ ID とパスワードを定義する必要があります。 このサンプルは、下記を実証します:
  • サーバ(や vapp)のリストとステータスが、vCloud API から読み出されます。そして、監視ステータスイベントが生成されて Tap In 監視サーバに送られます。このテンプレートを、あなたが選んだ監視システムのサーバステータス更新の送出のた
  • 各 vapp の詳細なコンフィグレーションがこのモデルで問い合わせられます。必要であれば、このコンフィグレーション情報を使って他のデータベースを更新することができます。
  • これは繰り返しモデル(詳しくは データ構造 のセクションを参照ください)の例で、ステータスが常にポーリングされ、更新されます。このモデルはオペレータによって停止されるまでは実行し続けます。

モデルの図を下記に示します。

vC_server_mediator.png


vC_ops_start_server.xml

このコントロールプランのモデルはここからダウンロードできます (右クリックで、XMLファイルとして保存するため save )。このサンプルは、下記を実証します:
  • あなたのユーザとパスワード情報をオペレータダイアログで取得します。 それらをプランの中でセットする必要はありません。
  • API から使用可能なカタログのリストを収集します。そして、このリストはダイアログボックスで表示されます。
  • あなたがカタログのアイテムを選択した後、サーバがインスタンス化されます。

モデルの図を下記に示します。

vC_ops_server_start.png

そのプランが実行されると、オペレータがユーザ ID とパスワードを入力するためのダイアログボックスを表示します。カタログアイテムを集めおわると、下記のようにダイアログ・リストボックスの中にそれらのアイテムをリストします。

vC_ops_server_start_list_dialog.png

オペレータはこのリスト中の一つのアイテムを選択するでき、そして 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 のドキュメントを参照ください)
これらのセッティングを変えたり、あるいはオペレータがオプションの入力や選択をするようこのモデルを拡張させるのに、この XML を変更することができます。

vC_ops_stop_server.xml

このコントロールプランのモデルは、 ここからダウンロード できます (右クリックで、XMLファイルとして保存するため save )。このサンプルは、下記を実証します:
  • あなたのユーザとパスワード情報をオペレータダイアログで取得します。 それらをプランの中でセットする必要はありません。
  • このアカウントでインスタンス化しているサーバをリストします。
  • あなたが一つのサーバを選択した後、そのサーバで power off コマンドが発行されます。
モデルの図を下記に示します。

vC_ops_server_stop.png

vC_ops_server_action.xml

このコントロールプランのモデルは、 ここからダウンロード できます (右クリックで、XMLファイルとして保存するため save )。このサンプルは、下記を実証します:
  • このアカウントでインスタンス化しているサーバをリストします。
  • あなたが一つのサーバを選択した後、選択されたサーバで実行可能なアクションをリストします。
  • そのアクションを実行します。
  • アクションのログのため、監視システムにイベントを送ります。
モデルの図を下記に示します。

vC_ops_server_action1.png

プロセスが List Servers プレースをヒットしたとき、そのプランは下記のように見えるでしょう。

vC_ops_server_action2.png

下記のダイアログボックスが表示され、すべての定義済みサーバがリストされます。この例では、サーバが一つだけ定義されています。

vC_ops_server_action_serverlist.png

サーバを選んで、OK ボタンをクリックした後、プランは Select Action プレースに移り、下記のようなダイアログボックスが表示されます。

vC_ops_server_action_actionlist.png

実行するアクションを選び、そのアクションがサーバに適用されます。アクションを実施した後、どのアクションがどのサーバに行われたかを示すよう、Tap In 監視サーバにイベントが送られます。
 
Tap In クラウド管理サービス 特徴とメリット 活用事例 Tap In クラウドコントロールサービス
イベント管理アーキテクチャ 管理対象テクノロジー ビューア Amazon CloudWatch との統合 3tera Applogic との統合 GoGrid との統合 プロセス自動化
Tap In Systems について 経営 コンタクト
ドキュメント ダウンロード 技術論文 技術ウィッキサイト フォーラム