SoftLayer Command Line Interface環境の導入

# 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系がありますが、今回２系のPython 2.7.6を導入。
③次のステップ（④）でPythonツールを導入する際、wgetを使用。
④Pythonでよく使われているツール、ez_setup / pip の導入。
⑤pipでSoftLayerパッケージを導入。
⑥ユーザーIDやAPI Keyを設定。
![Fig01.jpg](https://qiita-image-store.s3.amazonaws.com/0/59815/d1187ccc-6dd1-d7d7-3493-a26f7f5f6e68.jpeg)



# 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が表示されます。

### ３－②．Python 導入
PythonをWindows７（32bit）環境で使えるように、導入と環境設定を説明します。
Python 2系とPython 3系がありますが、ここでは２系で現在最新のPython 2.7.6を導入します。

### ３－②－１．Python 2.7.6のダウンロード
・http://www.python.org/ のサイトからPython2.7.6のWindows用インストーラーをダウンロードします。
「Quick Links (2.7.6)」⇒「Windows Installer」をクリックし、ダウンロード開始。

### ３－②－２．Python 2.7.6のセットアップ
・ダウンロードした 「python-2.7.6.msi」をダブルクリックして、インストーラーを起動します。

### ３－②－３．Python 環境変数の設定
・「Python.exe」が実行モジュールです。　初期値で導入したので、導入フォルダーは 「c:\Python27」、その中に「Python.exe」があるのが確認できます。
このフォルダーに環境変数Pathを通します。
尚、導入フォルダーを変更した方は、「Python.exe」のあるフォルダーにPathを通します。

### ３－②－４．Python 導入の確認
・Pythonが正常に導入されたかを、コマンドプロンプトで確認します。
「Python」と入力し、Enterキーを押してください。

正常に導入されていれば、Pythonの対話型シェルが起動されます。
バージョン情報の後に、プロンプト「>>>」が表示されたら正常に導入されています。
「Ctrl」と「ｚ」ボタンを押し、Enterキーを押して対話型シェルから抜けます。
コマンドプロンプトになりましたら、「Exit」で終了してください。

### ３－③．wget導入
次のステップで、Pythonツールを導入します。
Pythonツール導入はwgetコマンドを使用します。Linuxはコマンドとして標準提供されていますが、残念な事にWindowsには標準提供されていないため、ダウンロードして導入します。

### ３－③－１．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」

### ３－③－2．ダウンロードファイルの解凍
・C:\wget_toolフォルダーを作成し、ダウンロードした2つのファイルを解凍します。
　2つのZipファイルは解凍後、削除して構いません。

### ３－③－３．フォルダー名の変更
wget-1.11.4-1-binフォルダー名をwgetに変更

### ３－③－４．DLLのコピー
C:\wget_tool\wget-1.11.4-1-dep\binの4つのdllを、C:\wget_tool\wget\binへコピー

### ３－③－５．wget環境変数の設定
・「システム環境変数」から、「変数名Path」を選択し、「編集」ボタンを押します。

・「変数値」の末尾に「;C:\wget_tool\wget\bin」を追加して、「OK」ボタンを押してください。

### ３－③－6．wget 導入の確認
・Pythonが正常に導入されたかを、コマンドプロンプトで確認します。
「wget」と入力し、Enterキーを押してください。

### ３－④．Python ツール導入
後程、SoftLayerパッケージを導入しますが、その導入のためにpipが必要で、pipを使用するために、setuptoolsが必要になります。ここでは、setuptoolsとpipをwgetを使って導入します。
前提として、Pythonとwgetが必要です。

### ３－④－１．setuptools 導入
導入は簡単です。
・コマンドプロンプトで下記コマンドを入力してください。

```Command:コマンド
wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/
bootstrap/ez_setup.py && Python ez_setup.py　⏎
```

### ３－④－２．pip 導入
導入は簡単です。
・コマンドプロンプトで下記コマンドを入力してください。

```Command:コマンド
wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/
get-pip.py && python get-pip.py 　⏎
```

### ３－⑤．SoftLayer パッケージ導入
Pipを使用して、SoftLayerパッケージを導入します。
Pip.exeは、Python導入ディレクトリー\Scriptsにありますので、ディレクトリーを変更してください。
（本環境はc:\Python27に導入しましたので、c:\Python27\Scripts になります。）

・コマンドプロンプトで下記コマンドを入力してください。

```Command:コマンド
pip install softlayer 　⏎
```

### ３－⑥．構成のセットアップ
「Command Line Interface」環境導入の最後のステップです。
ここでは、導入済みのSoftLayerパッケージを起動し、ユーザーID、API Keyを登録します。

sl.exeは、Python導入ディレクトリー\Scriptsにありますので、ディレクトリーを変更してください。
（本環境はc:\Python27に導入しましたので、c:\Python27\Scripts になります。）

・コマンドプロンプトで下記コマンドを入力してください。

```Command:コマンド
sl config setup 　⏎
```

・SoftLayer ID、パスワード（またはAPI Key）、EndPointを入力します。

以上で、「Command Line Interface」環境導入が完了しました。

### ３－⑦．機能の確認
ここでは例として、現在稼働しているCloud Computer Instanceの一覧を見ます。
コマンドは、

```Command:コマンド
sl cci list 　⏎

```

です。
![Fig02.jpg](https://qiita-image-store.s3.amazonaws.com/0/59815/4858711f-6c69-6c4d-4f2c-704811f2ac8d.jpeg)



# 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/