Img_9_lg

Rackspace 自動化

これらコントロールプランのファイルは、Rackspace の CloudServer と CloudFiles サービスの使用を自動化するために使用できるテンプレートです。このツールの使用方法については、 Control Plan Editor セクションを参照してください。



パッケージのダウンロード

Rackspace のクラウドサービスへインタフェースするためのコントロールプランのテンプレートを ここでダウンロードできます。

テンプレート

下記にこのパッケージの各テンプレートを説明します。これらの Ruby テンプレートは、Rackspace API にコマンドを発行するために Rackspace インタフェース・メソッド のセクションで説明したメソッドを使用します。それらは、あなたの Rackspace ユーザ名とアクセスキーを入力パラメータとして取得します。

RS_flavors_list.xml

使用可能な、種類(flavors)あるいは、hardware/disk/memorの組み合わせをリストします。出力の例を下記に示します。
{"flavors":[{"id":1,"name":"256 server"},
{"id":2,"name":"512 server"},
{"id":3,"name":"1GB server"},
{"id":4,"name":"2GB server"},
{"id":5,"name":"4GB server"},
{"id":6,"name":"8GB server"},
{"id":7,"name":"15.5GB server"}]}
Flavor 256 server, 1
Flavor 512 server, 2
Flavor 1GB server, 3
Flavor 2GB server, 4
Flavor 4GB server, 5
Flavor 8GB server, 6
Flavor 15.5GB server, 7

RS_flavors_list_detail.xml.

使用可能な、種類(flavors)とアトリビュートをリストします。
{"flavors":[{"id":1,"ram":256,"disk":10,"name":"256 server"},
{"id":2,"ram":512,"disk":20,"name":"512 server"},
{"id":3,"ram":1024,"disk":40,"name":"1GB server"},
{"id":4,"ram":2048,"disk":80,"name":"2GB server"},
{"id":5,"ram":4096,"disk":160,"name":"4GB server"},
{"id":6,"ram":8192,"disk":320,"name":"8GB server"},
{"id":7,"ram":15872,"disk":620,"name":"15.5GB server"}]}
Flavor 256 server, id 1
    id=1
    ram=256
    disk=10
    name=256 server
Flavor 512 server, id 2
    id=2
    ram=512
    disk=20
    name=512 server
Flavor 1GB server, id 3
    id=3
    ram=1024
    disk=40
    name=1GB server
Flavor 2GB server, id 4
    id=4
    ram=2048
    disk=80
    name=2GB server
Flavor 4GB server, id 5
    id=5
    ram=4096
    disk=160
    name=4GB server
Flavor 8GB server, id 6
    id=6
    ram=8192
    disk=320
    name=8GB server
Flavor 15.5GB server, id 7
    id=7
    ram=15872
    disk=620
    name=15.5GB server


RS_images_list.xml.

使用可能なイメージをリストします。
{"images":[{"id":2,"name":"CentOS 5.2"},
{"id":3,"name":"Gentoo 2008.0"},
{"id":4,"name":"Debian 5.0 (lenny)"},
{"id":5,"name":"Fedora 10 (Cambridge)"},
{"id":7,"name":"CentOS 5.3"},
{"id":8,"name":"Ubuntu 9.04 (jaunty)"},
{"id":9,"name":"Arch 2009.02"},
{"id":10,"name":"Ubuntu 8.04.2 LTS (hardy)"},
{"id":11,"name":"Ubuntu 8.10 (intrepid)"},
{"id":12,"name":"Red Hat EL 5.3"},
{"id":13,"name":"Fedora 11 (Leonidas)"},
{"id":14362,"name":"Ubuntu 9.10 (karmic)"}]}
Image CentOS 5.2, 2
Image Gentoo 2008.0, 3
Image Debian 5.0 (lenny), 4
Image Fedora 10 (Cambridge), 5
Image CentOS 5.3, 7
Image Ubuntu 9.04 (jaunty), 8
Image Arch 2009.02, 9
Image Ubuntu 8.04.2 LTS (hardy), 10
Image Ubuntu 8.10 (intrepid), 11
Image Red Hat EL 5.3, 12
Image Fedora 11 (Leonidas), 13
Image Ubuntu 9.10 (karmic), 14362


RS_images_list_detail.xml

使用可能なイメージとそれらのアトリビュートをリストします。
{"images":[
{"id":2,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"CentOS 5.2"},
{"id":3,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Gentoo 2008.0"},
{"id":4,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Debian 5.0 (lenny)"},
{"id":5,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Fedora 10 (Cambridge)"},
{"id":7,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"CentOS 5.3"},
{"id":8,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Ubuntu 9.04 (jaunty)"},
{"id":9,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Arch 2009.02"},
{"id":10,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Ubuntu 8.04.2 LTS (hardy)"},
{"id":11,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Ubuntu 8.10 (intrepid)"},
{"id":12,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Red Hat EL 5.3"},
{"id":13,"status":"ACTIVE","created":"2009-07-20T09:16:57-05:00","updated":"2009-07-20T09:16:57-05:00","name":"Fedora 11 (Leonidas)"},
{"id":14362,"status":"ACTIVE","name":"Ubuntu 9.10 (karmic)"}
]}
Image CentOS 5.2, id 2
    id=2
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=CentOS 5.2
Image Gentoo 2008.0, id 3
    id=3
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Gentoo 2008.0
Image Debian 5.0 (lenny), id 4
    id=4
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Debian 5.0 (lenny)
Image Fedora 10 (Cambridge), id 5
    id=5
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Fedora 10 (Cambridge)
Image CentOS 5.3, id 7
    id=7
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=CentOS 5.3
Image Ubuntu 9.04 (jaunty), id 8
    id=8
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Ubuntu 9.04 (jaunty)
Image Arch 2009.02, id 9
    id=9
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Arch 2009.02
Image Ubuntu 8.04.2 LTS (hardy), id 10
    id=10
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Ubuntu 8.04.2 LTS (hardy)
Image Ubuntu 8.10 (intrepid), id 11
    id=11
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Ubuntu 8.10 (intrepid)
Image Red Hat EL 5.3, id 12
    id=12
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Red Hat EL 5.3
Image Fedora 11 (Leonidas), id 13
    id=13
    status=ACTIVE
    created=2009-07-20T09:16:57-05:00
    updated=2009-07-20T09:16:57-05:00
    name=Fedora 11 (Leonidas)
Image Ubuntu 9.10 (karmic), id 14362
    id=14362
    status=ACTIVE
    name=Ubuntu 9.10 (karmic)


RS_servers_delete.xml

定義済みのサーバを削除します。 このプログラムは、まずサーバ ID を取得するためにサーバをリストし、次に、最初のサーバを削除します。

RS_servers_ips.xml

サーバに使用されている IP アドレスをリストします。 このプログラムは、まずサーバ ID を取得するためにサーバをリストし、次に、最初のサーバの IP アドレスを取得します。
{"addresses":{"public":["174.143.154.167"],"private":["10.177.0.217"]}}
resp /servers/101302/ips/public={"public":["174.143.154.167"]}
resp /servers/101302/ips/private={"private":["10.177.0.217"]}


RS_servers_list.xml

クラウドのサーバとして定義されているサーバをリストします。 下記の例では、一台のサーバが稼動しています。
 /servers={"servers":[{"id":101302,"name":"RSLinux1"}]}
Server RSLinux1, 101302, status

RS_servers_list_detail.xml

クラウドのサーバとして定義されているサーバとそのアトリビュートをリストします。
下記の例では、一台のサーバが稼動しています。
resp /servers/detail={"servers":[
{"progress":100,"id":101302,"imageId":2,"flavorId":1,"status":"ACTIVE","name":"RSLinux1",

"hostId":"f191925187a235ec995078cc02aa8544",
"addresses":{"public":["174.143.154.167"],"private":["10.177.0.217"]},"metadata":{}}
]}
Server RSLinux1, 101302, status ACTIVE

RS_servers_reboot.xml

定義済みサーバをリブートします。 このプログラムは、まずサーバ ID を取得するためにサーバをリストし、次に、最初のサーバをリブートします。

RS_servers_start.xml

新しいサーバをスタートします。name と imageId および flavorId を指定する必要があります。 そのためのコードを下記に示します。
これらのパラメータをどのように指定したかに注意してください。name は "Linux2_auto"です。 imageId と flavorId は実在している必要があります。 これらの ID は image_list と flavor_list メソッドで読み出すことができます。
require 'TIS_CloudServers'
require 'json'
cf = Connection.new($USERNAME, $API_KEY)
headers = {'Content-Type'=>'application/json'}

data ='{ "server" : {
        "name" : "Linux2_auto",
        "imageId" : 2,
        "flavorId" : 1
      }
    }'

resp = cf.cfreq("POST",cf.servermgmthost,cf.servermgmtpath+"/servers",cf.servermgmtport,cf.servermgmtscheme,headers,data)
puts "resp /servers=#{resp.body}"

プロセスのサンプル


RS_servers_list_mediator.xml

このテンプレートは servers_list テンプレートのバリエーションです。この場合、稼動中のサーバとそれらのステータスを取得し、その結果を Tap In 監視サーバに送ります。各サーバの結果は、監視サーバ上のステータスイベントとして表示されます。このプランは終了(End)プレースをヒットすることがありません。常にループし、各ループでイベントを送ります。チェックの間隔は Wait プレースの中で定義されています。

RS_server_mediator.png
 
Tap In クラウド管理サービス 特徴とメリット 活用事例 Tap In クラウドコントロールサービス
イベント管理アーキテクチャ 管理対象テクノロジー ビューア Amazon CloudWatch との統合 3tera Applogic との統合 GoGrid との統合 プロセス自動化
Tap In Systems について 経営 コンタクト
ドキュメント ダウンロード 技術論文 技術ウィッキサイト フォーラム