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}"