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 プレースの中で定義されています。