何が出来るの?

SoftLayer (IBM社のPublic Cloud Service) では様々なリソースの物理サーバがインスタンスとして利用できる(以下ベアメタルサーバ)のが特徴です。 そんなベアメタルサーバのですが構成が多すぎるので構成を検索してくれるスクリプトがgistに出ていました。

というわけで、ここで紹介するツールはSoftLayerのベアメタルサーバの構成を検索する事が出来ます。

Install

rubyすらはいっていなかったので、Rubyを導入するとともに Softlayer_API も導入します。最近はAWS(Amazon Web Service)もそうですがパッケージレポジトリに登録されているので楽ですね。

1
2
3
$ sudo apt-get install ruby1.9.3
$ sudo gem install softlayer_api
$ git clone https://gist.github.com/7f8ca7027034cecddcc4.git

次にダウンロード(git cloneした)ファイルの中にアカウント名/APIキーを記載する項目があるのでSoftLayerの管理コンソールからAPIキーを発行した後に中を書き換えておきましょう。

1
2
3
4
5
require 'rubygems'
require 'softlayer_api'
require 'optparse'
$SL_API_USERNAME = "****"
$SL_API_KEY = "*****"

使ってみる

1
2
3
4
5
6
7
8
9
$ ./sl_config_finder.rb
Usage: ./sl_config_finder.rb [options]
    -c, --cpu cores                  Amount of CPU cores desired
    -m, --memory amount              Amount of memory desired in GB
    -d, --disk amount                Amount of disk spindels desired
    -p, --priority pri1,pri2[,pri3]  What order to prioritse resources  (cpu, memory, disk) when searching
    -b {higher, lower, nearest},     If exact match for given resource is not found, which way to search
        --bias
    -h, --help                       Displays Help

普通に引数漏れだと動きません。 次に、実際に使ってみます、「CPU(1core),Memory(1G),CPU,Memoryを優先で検索」

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ ./sl_config_finder.rb -c 1 -m 1 -p cpu,memory,disk -b higher
Desired versus selected specs
CPU:            desired - 1   == selected - 2
RAM:            desired - 1   == selected - 2
Disk spindles:  desired -    == selected - 1
=========== Possible packages meeting these requirements ==================
===========================================================================
ID: 20
Name: Express (Dual Core Single Intel and AMD)
CPU options
Name: Single Processor Dual Core Opteron 1216 - 2.40GHz - 2 x 1MB cache
ID: 383 == Cores: 2
--------------------------------------------
Name: Single Processor Quad Core Opteron 1354 - 2.20GHz - 2 x 1MB cache
ID: 674 == Cores: 4
--------------------------------------------

Ram options:
ID: 104 Name: 2 GB DDR2 667
===========================================================================

こんな感じで、選択できるものが表示されます。このIDの番号はAPIからCreate(Order)するときに必要な番号です。 ちなみに表示までに数十〜数分かかります。何がこんなに遅いのだろうか。

まとめ

これで価格まで出てくれれば良い見積もりツールだったのですが現在のところ表示は出来なそうです。

重い、あまりに遅いので管理コンソール(ブラウザ)で探した方が早いのではなかと思うほどです orz

使い勝手はともかくSourceは参考になりそうですね。もう少し重たい原因を見つけておくと良いかもしれません。 SoftLayerではAPIが色々あり導入出来るOSのリストとか簡単に取得できます。その辺りCLIで出来ると良いのですが。