SoftLayerに限らず、パブリッククラウドのいいところは、全てがコマンドで管理できることです。GUIも便利なんですが、定型処理の繰り返しや、間違い防止にはやはりコマンドが便利です。
GUIで、クリックするところを1cm間違えたら[はい]と[いいえ]が逆になりますが、タイプするキーを間違えてもほとんどの場合は単にエラーになるだけです。
Microsoft Azureの管理は、単体のコマンドもありますが、PowerShellで行うのが一般的です。PowerShellはWindowsに標準搭載されている馴染み深いツールですし、そもそもMicrosoft AzureはWindowsのサポートを最優先で行ってくれます。
ツールはMicrosoft Azureの管理ポータルサイトやMicrosoft Azureのホームページから簡単にたどれますし(Microsoft Azureダウンロードサイト)、インストールも簡単です。
Amazon Web Servicesも、コマンドラインツールとPowerShellツールが「アマゾン ウェブ サービスのツール」として分かりやすい場所にあります。
ところが、IBMが提供するSoftLayerは、Python言語のインターフェースを使う関係で少々複雑です。
調べたら、Mitsu-Murakitaさんのブログ記事「SoftLayer Command Line Interface環境の導入」に詳しい手順が出ていました。この通りに設定すればうまくいきます。ありがとうございました。
ただし、ツールのバージョンが変わったのか、少し冗長な部分もあるので、整理したものを改めて書いてみたいと思います。
主な手順は以下の通りです。
- Pythonの導入
- SoftLayer管理ツールの導入
- SoftLayerを制御するAPIキーの取得
- SoftLayer管理ツールの初期化
順に設定していきましょう。
なお、Pythonは複数のバージョン系列があります。記事では2系で試していますが、私は3系で問題なくインストールできました。
また、ツール自体のバージョンもメジャーチェンジがあったようですので、ご注意ください。新版ではコマンド名もslからslcliに変わっています。
ブログ記事「SoftLayer API Python Client 4.0.0 でもう一度」によると、今のところ旧バージョンの方が一般的なようです。今回も、広く使われている旧版をインストールします。
1. Pythonの導入
- Pythonの公式サイトから[Downloads]-[Windows]を選択
- 適切なバージョンのPythonを選択
今回は「Latest Python 3 Release - Python 3.4.3」を選びました。 - インストーラー付きのパッケージをダウンロードしてインストール
今回は「Windows x86-64 MSI installer」ダウンロードしました。
32ビット版OSの方は「Windows x86 installer」をどうぞ。 - インストールオプション[Add python.exe to Path]を有効化
既定で無効になっている唯一のオプションです(一番下にあります)。
このオプションを有効にすると、環境変数PATHの設定が不要になります。
Pythonは、バージョン2系の方が広く使われているそうですが、今後は3系に移行するということでした。SoftLayerのツールの制限については確認していませんが、どちらでも動くようです。
必要に応じて、環境変数PATHを変更します。インストール時に[Add python.exe to Path]を指定していれば、C:\Python34\;C:\Python34\Scripts が先頭に追加されるので何もしなくて構いません(Pythonバージョン3.4の場合)。
環境変数の設定は間違えやすいので、自信のない方は自動構成をおすすめします。
Windows Installerは、何度インストール作業を行っても問題ないようにできています。起動後、[Repair](修復)というオプションを選べば同じ構成で、[Change](変更)を選べば異なる構成で再インストールできます。
インストールが終わったら、pythonコマンドを実行して、プロンプト >>> が出てくれば成功です。終了ははCtrl-Zを入力するかexit()を実行します。
2. SoftLayer管理ツールの導入
SoftLayer管理ツールの導入には、以下の追加ファイルが必要です。
- setuptools (ez_setup.py)
- pip (get_pip.py)
wgetというツールを使えば、直接ファイルに保存できるのですが、以下の方法でも可能です。
- 上記のリンクにアクセスし、Pythonのスクリプトを表示
- [Ctrl-A]→[Ctrl-C]で全体をクリップボートに保存
- メモ帳を起動
- [Ctrl-V]でメモ帳に貼り付け
- 名前を付けて、適当な場所に保存
この時「ファイルの種類」として「すべてのファイル」を選択してください。ファイル名は括弧内に示したとおり、ez_setup.pyとpip.pyです。拡張子も書いてください。 「すべてのファイル]を選択しないと「pip.py.txt」のようなファイルができてしまいます。 - ファイルの保存先フォルダーで、python ez_setup.pyを実行
セットアップツール本体のダウンロードも行うため、少し時間がかかります。 - ファイルの保存先フォルダーで、python pip.pyを実行
同じく少し時間がかかります。 - pip install softlayerを実行
Pythonのインストールツールpipがインストールされたので、これを使ってSoftLayer管理ツールを導入します。
3. SoftLayerを制御するAPIキーの取得
SoftLayerの管理ポータルにアクセスし、APIキーを取得します。
- SoftLayerの管理ポータルにアクセスし、ログオン
- [Users]で、管理に使うユーザー名を書き留める
SL123456形式のマスターユーザーでも、子ユーザーでも構いません。 - そのユーザーのリンクを選択
- [API Access Information]から[Authentication Key:]を書き留める
(例: 7bf4b35eb105767c15.... という長い文字列)
後述するように、実際にはAPIキーを知らなくても、ユーザー名とパスワードが分かっていれば構成は可能です。実際にはその方が便利でしょう。
4. SoftLayer管理ツールの初期化
以上で、slコマンドが使えるようになりました。最後に、SoftLayerのアクセス情報を登録して完了です。
赤字が入力文字、青字が説明文です。レイアウトの都合で、一部の文字を削除しています。
C:\> sl config setup ←初期化コマンド
Username []: yokoyama ←ユーザー名(追加ユーザーでも可)
API Key or Password []:XXXXX ←APIキーまたはユーザーパスワード
Endpoint (public|private|custom): public ←後述
:..............:.............................................
: Name : Value
:..............:.............................................
: Username : yokoyama
: API Key : XXXXXXXXXXXXXXXXXXXXXXX
: Endpoint URL : https://api.softlayer.com/xmlrpc/v3.1/
: Timeout : not set
:..............:.............................................
Are you sure you want to write settings to "C:\Users\yokoyama/.softlayer"? [Y/n]: y←情報の保存の可否
Configuration Updated Successfully
endpointは、APIアクセス用のURLで、以下の3つのいずれかを指定します。
- public…インターネットなどのパブリックネットワークから利用する場合
- private…SoftLayer内部のプライベートネットワークから利用する場合
- custom…任意のURLを指定(使うことはあまりないでしょう)
構成情報は、ユーザープロファイルフォルダーに「.softlayer」という名前で保存されます。ピリオドで始まるファイル名は、UNIX系の作法に従った初期化ファイルです。
なお、初期化時にパスワードを指定した場合でも、保存されるのはAPIキーのみです。ユーザー名とパスワードを指定した時点で、SoftLayerにアクセスしてAPIキーを取得しているようです。
パスワードが保存されないのは安全でいいのですが、APIキーを使えばSoftLayerの管理作業が可能です。構成ファイルはプレーンテキストなので、セキュリティには十分注意してください。既定では、プロファイルフォルダーは本人しか読み取りの権限がありません。
たとえば、以下のコマンドはクラウド上の仮想マシン一覧を表示します。
sl vs list
終わりに
クラウドサービスが提供する仮想マシンは、必ずしも最安値ではありません。クラウドの価値は、単純な価格ではなく、必要な時にいくらでもリソースを追加でき、不要になったら解除できること、そして自動構成が可能なことです。そして、自動構成をするにはAPIやコマンドの利用が不可欠です。
また、パブリッククラウドクラウドの管理WebサイトのGUIはしばしば予告なく変わります。せっかく作った操作マニュアルがある日突然使えなくなったり、既定値が変わったりします。
その点、コマンドが変わることはあまりありませんし、APIの変更はもっと少ないでしょう。コマンドというと、熟練者が使うイメージが強いようですが、「見たまま打てば成功する」ので、実は初心者にも優しいインターフェースです。
GUIは「概念は分かっているけど、細かい手順は覚えていない」という方に適しています。一方、コマンドは「全てを理解して、覚えている」上級者に加えて「概念も手順も分かっていないけど、決められた仕事を遂行しなければならない」初級者にも向いています。
このように、コマンドというのは実は初級者から上級者まで(初級者と上級者に)優しいインターフェースなのです。
▲猫といえばマウスですが、最近はキーボードも使います
(Ctrl-Alt-Delを押すのは無理なようです)