1.はじめに
SoftLayerの提供するメインAPIは、多くのファンクションコールがあり(API Ver3.0:180を超えるサービス、2200のファンクションコール)、ポータルで提供している機能のほとんどがAPIを使ってプログラミングできるそうです。
これを使えば、独自のポータルを作成、運用操作の自動化が可能になります。
例えば、インスタンス(サーバー)の作成、削除、変更をはじめとし、運用・保守など様々な用途が独自のルールで組み立てられます。
言語はC#, Perl, PHP, Python, Ruby, VB .Netがサポートされ、REST, SOAP & XML-RPCインターフェースがサポートされています。
幸いなことに、「Command Line Interface」も提供されていますので、シェルプログラムに組み込めば、APIを使ってプログラミングしなくても、各種機能が使えます。
では、次にくる問題としては、「Command Line Interface」はPythonで書かれているため、Pythonの環境を作らなくてはいけません。Pythonをご存じの方は簡単に導入できるでしょうが、Pythonという名前しか知らかったので、何をどうすれば良いかを調べるところから始めました。
尚、クライアントPCシステム環境はWindows7(32bit)を使用しています。
2.導入ステップ概要
①ポータル画面のユーザー一覧(Users)から、API Keyを取得。
②Python 2系とPython 3系がありますが、今回2系のPython 2.7.6を導入。
③次のステップ(④)でPythonツールを導入する際、wgetを使用。
④Pythonでよく使われているツール、ez_setup / pip の導入。
⑤pipでSoftLayerパッケージを導入。
⑥ユーザーIDやAPI Keyを設定。
3.導入
3-①.API Key取得
API KeyはAPIを使ってアクセスするユーザーを許可する、英数字の一意の識別子です
「Command Line Interface」はSoftLayer APIを使用していますので、API Keyが必要です。
・API Keyはポータル画面の「Account」⇒「Users」 ユーザー一覧から設定・取得します。
・API Keyを取得するユーザー行の右側にある「Generate」リンクをクリック。
・しばらくすると「Generate」から「View」へ変わり、API Keyが作成されました。
・「View」 リンクをクリックすると作成されたAPI Keyが表示されます。
3-②.Python 導入
PythonをWindows7(32bit)環境で使えるように、導入と環境設定を説明します。
Python 2系とPython 3系がありますが、ここでは2系で現在最新のPython 2.7.6を導入します。
3-②-1.Python 2.7.6のダウンロード
・http://www.python.org/ のサイトからPython2.7.6のWindows用インストーラーをダウンロードします。
「Quick Links (2.7.6)」⇒「Windows Installer」をクリックし、ダウンロード開始。
3-②-2.Python 2.7.6のセットアップ
・ダウンロードした 「python-2.7.6.msi」をダブルクリックして、インストーラーを起動します。
3-②-3.Python 環境変数の設定
・「Python.exe」が実行モジュールです。 初期値で導入したので、導入フォルダーは 「c:\Python27」、その中に「Python.exe」があるのが確認できます。
このフォルダーに環境変数Pathを通します。
尚、導入フォルダーを変更した方は、「Python.exe」のあるフォルダーにPathを通します。
3-②-4.Python 導入の確認
・Pythonが正常に導入されたかを、コマンドプロンプトで確認します。
「Python」と入力し、Enterキーを押してください。
正常に導入されていれば、Pythonの対話型シェルが起動されます。
バージョン情報の後に、プロンプト「>>>」が表示されたら正常に導入されています。
「Ctrl」と「z」ボタンを押し、Enterキーを押して対話型シェルから抜けます。
コマンドプロンプトになりましたら、「Exit」で終了してください。
3-③.wget導入
次のステップで、Pythonツールを導入します。
Pythonツール導入はwgetコマンドを使用します。Linuxはコマンドとして標準提供されていますが、残念な事にWindowsには標準提供されていないため、ダウンロードして導入します。
3-③-1.wgetダウンロード
・http://gnuwin32.sourceforge.net/packages/wget.htm
のサイトから、「wget-1.11.4-1-dep.zip」、「wget-1.11.4-1-bin.zip」の2つのファイルをダウンロードします。
Downloadセクションの下記場所からダウンロードできます。
・Binaries Zip ---- 「wget-1.11.4-1-bin.zip」
・Dependencies Zip ----- 「wget-1.11.4-1-dep.zip」
3-③-2.ダウンロードファイルの解凍
・C:\wget_toolフォルダーを作成し、ダウンロードした2つのファイルを解凍します。
2つのZipファイルは解凍後、削除して構いません。
3-③-3.フォルダー名の変更
wget-1.11.4-1-binフォルダー名をwgetに変更
3-③-4.DLLのコピー
C:\wget_tool\wget-1.11.4-1-dep\binの4つのdllを、C:\wget_tool\wget\binへコピー
3-③-5.wget環境変数の設定
・「システム環境変数」から、「変数名Path」を選択し、「編集」ボタンを押します。
・「変数値」の末尾に「;C:\wget_tool\wget\bin」を追加して、「OK」ボタンを押してください。
3-③-6.wget 導入の確認
・Pythonが正常に導入されたかを、コマンドプロンプトで確認します。
「wget」と入力し、Enterキーを押してください。
3-④.Python ツール導入
後程、SoftLayerパッケージを導入しますが、その導入のためにpipが必要で、pipを使用するために、setuptoolsが必要になります。ここでは、setuptoolsとpipをwgetを使って導入します。
前提として、Pythonとwgetが必要です。
3-④-1.setuptools 導入
導入は簡単です。
・コマンドプロンプトで下記コマンドを入力してください。
wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/
bootstrap/ez_setup.py && Python ez_setup.py ⏎
3-④-2.pip 導入
導入は簡単です。
・コマンドプロンプトで下記コマンドを入力してください。
wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/
get-pip.py && python get-pip.py ⏎
3-⑤.SoftLayer パッケージ導入
Pipを使用して、SoftLayerパッケージを導入します。
Pip.exeは、Python導入ディレクトリー\Scriptsにありますので、ディレクトリーを変更してください。
(本環境はc:\Python27に導入しましたので、c:\Python27\Scripts になります。)
・コマンドプロンプトで下記コマンドを入力してください。
pip install softlayer ⏎
3-⑥.構成のセットアップ
「Command Line Interface」環境導入の最後のステップです。
ここでは、導入済みのSoftLayerパッケージを起動し、ユーザーID、API Keyを登録します。
sl.exeは、Python導入ディレクトリー\Scriptsにありますので、ディレクトリーを変更してください。
(本環境はc:\Python27に導入しましたので、c:\Python27\Scripts になります。)
・コマンドプロンプトで下記コマンドを入力してください。
sl config setup ⏎
・SoftLayer ID、パスワード(またはAPI Key)、EndPointを入力します。
以上で、「Command Line Interface」環境導入が完了しました。
3-⑦.機能の確認
ここでは例として、現在稼働しているCloud Computer Instanceの一覧を見ます。
コマンドは、
sl cci list ⏎
4.おわりに
SoftLayerの提供する多くのAPIを理解するには、「Command Line Interface」から入ると分かりやすいと思います。
参考資料:
http://sldn.softlayer.com/reference/overview
http://www.softlayer.com/about/automation/open-api/
http://knowledgelayer.softlayer.com/topic/developmentapi
http://sldn.softlayer.com/
https://softlayer-api-python-client.readthedocs.org/en/latest/