4.9 コマンドでサーバーをオーダーするには？

（2016年時点での内容をアーカイブとして掲載しているため、一部の掲載内容が最新情報とは異なる場合がありますので、ご了承ください。最新のIBM Cloudのアップデート情報は[IBM Cloud アップデート情報](https://www.ibm.com/cloud-computing/jp/ja/cloud-update/) や [柔らか層本](https://ibm.ent.box.com/v/ibmcloud-yawaraka)をご参照ください。）

概要
SoftLayerは、カスタマーポータルだけでなく、コマンド・ラインからでもサーバーの起動/削除ができます。 コマンド・ラインから操作するため、 SoftLayer API Python Client(以下、SLコマンド) が提供され、Windows, Linux, MacOSで利用することができます。 ここでは、SLコマンドの導入、サーバーの起動、削除の方法についてご紹介します。
 

SLコマンドとは
SLコマンドは、複雑なプログラミングをすることなく、コマンド・ラインで簡単に利用できるツールです。 シェルに組み込んで利用することで、業務の自動化にも役に立ちます。 SLコマンドの利用には、Python環境が必要であり、ソースはGitHubにて、SoftLayer API Python Client ( https://github.com/softlayer/softlayer-python ) として提供されています。 Linux環境であれば、apt-getやyumなどから簡単に導入することができます。

これから、SLコマンドのインストール方法の説明とともに、仮想サーバーの起動(注文)や、削除をする事例をご紹介します。
 

SLコマンドを利用するには
API Keyの取得

まず、SLコマンドの認証のためにカスタマーポータルからAPI Keyの取得が必要です。

カスタマーポータル画面内、「Account」->「Users」をクリックします。 「Users」画面内の「API Key」列にある、「Generate」のリンクをクリックし、API Keyを作成します。 「API Key」が作成されると、「Generate」が「View」に変わります。 「View」をクリックし、作成したAPIキーをメモ帳などに控えておきましょう。

SLコマンドのインストール

ここでは、CentOS6.5上で、SLコマンドのインストールの例を挙げて説明します。 インストール方法は、いたって簡単です。 次のようにたったの2行のコマンドを打つだけです。 最新のGitHubの情報は、SoftLayer API Python Client ( https://github.com/softlayer/softlayer-python )を参照してください。

Python環境のインストール
 
```
# yum install -y python-setuptools
Loaded plugins: fastestmirror, security
Determining fastest mirrors
* base: mirrors.service.networklayer.com
* extras: mirrors.service.networklayer.com
* updates: mirrors.service.networklayer.com

〜中略〜


Installed:
  python-setuptools.noarch 0:0.6.10-3.el6

Complete!
```

SLコマンドのインストール
 
```
# easy_install softlayer
Searching for softlayer
Reading http://pypi.python.org/simple/softlayer/
Best match: SoftLayer 3.3.0
Downloading https://pypi.python.org/packages/source/S/SoftLayer/SoftLayer-3.3.0.tar.gz#md5=ea3d0d0ef909ec985b992bfd6ee133a1
Processing SoftLayer-3.3.0.tar.gz
Running SoftLayer-3.3.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-lqLeP5/SoftLayer-3.3.0/egg-dist-tmp-7WYZJv
Adding SoftLayer 3.3.0 to easy-install.pth file
Installing sl script to /usr/bin

〜中略〜

Installed /usr/lib/python2.6/site-packages/six-1.8.0-py2.6.egg
Finished processing dependencies for softlayer
```

SLコマンドの環境設定

まず、SLコマンドの設定状況の確認を行います。 次の内容は、SLコマンドのインストール直後の状態です。 「not set」と表示され、ほとんど設定が入っていません。
 
```
# slcli config show
:..............:.......................................:
:         Name : Value                                 :
:..............:.......................................:
:     Username : not set                               :
:      API Key : not set                               :
: Endpoint URL : https://api.softlayer.com/xmlrpc/v3.1 :
:      Timeout : not set                               :
:..............:.......................................:
```

次に、slcli config setupコマンドによって、各設定項目を対話形式で入力します。
 
```
# slcli config setup
```

ユーザー名を入力します。
 

Username []: sl123456     

API Keyはカスタマーポータルから取得したAPI Keyを入力します。
 

API Key or Password []:    

「Endpoint URL」を設定します。 オプションは、「public」、「private」、「custom」の3つの中でいずれかを入力します。

   public：インターネット上に公開されているエンドポイントと連携します。
   private：SoftLayerのプライベート・ネットワークのエンドポイントと連携します。
   custom：特別な場合に用いられるエンドポイントです。

「public」と「private」のエンドポイントは、自動的に決まります。 「custom」を選択した場合は、個別にURLを入力が必要です。

 

Endpoint (public|private|custom):public

入力した内容が表示されますので、問題なければ、"Y"を入力します。
 
```
:..............:..................................................................:
:         Name : Value                                                            :
:..............:..................................................................:
:     Username : sl123456                                                         :
:      API Key : 5b2b757df*********************05da40f9c7900b88fd1e42dbc066092c4d :
: Endpoint URL : https://api.softlayer.com/xmlrpc/v3                              :
:      Timeout : not set                                                          :
:..............:..................................................................:
Are you sure you want to write settings to "/root/.softlayer"? [Y/n]: Y
Configuration Updated Successfully
```

これでslcliコマンドを利用する環境ができました。

仮想サーバー起動(注文)のオプション

仮想サーバーの起動(注文)時のオプションは、sl vs create-optionsコマンドで確認できます。 データ・センター、cpu、メモリ容量、ディスク種別、ネットワーク通信速度等のオプション項目が表示されます。
 
```
# slcli vs create-options
:.................:.................................................................................:
:            Name : Value                                                                           :
:.................:.................................................................................:
:      datacenter : ams01,dal01,dal05,dal06,hkg02,lon02,mel01,sea01,sjc01,sng01,tor01,wdc01         :
:  cpus (private) : 1,2,4,8                                                                         :
: cpus (standard) : 1,2,4,8,12,16                                                                   :
:          memory : 1024,2048,4096,6144,8192,12288,16384,32768,49152,65536                          :
:     os (CENTOS) : CENTOS_5_32                                                                     :
:                 : CENTOS_5_64                                                                    

〜中略〜


:   local disk(0) : 25,100                                                                          :
:   local disk(2) : 25,100,150,200,300                                                              :
:     san disk(0) : 25,100                                                                         

〜中略〜


:             nic : 10,100,1000                                                                     :
:.................:.................................................................................:
```

仮想サーバーの起動(注文)
ここでは、sl vs createコマンドを使って仮想サーバーの起動(注文)を行ってみます。 以下のサーバーは、ホスト名：m0002、ドメイン：example.com、CPUコア数：1、メモリ：1GB、OS：CentOS6(64bit)、ディスク:25GB(Local Disk)、データセンター：サンノゼ、時間単位料金のサーバーを指定しています。 ここで指定するデータセンターの名前などのオプションは、前述の実行結果を参照しています。
 
```
# slcli vs create --hostname=m0002 --domain=example.com --cpu=1 --memory=1024 --os=CENTOS_6_64 --disk=25 --datacenter=sjc01 --hourly
This action will incur charges on your account. Continue? [y/N]: y
:.........:......................................:
:    name : value                                :
:.........:......................................:
:      id : 1234567                              :
: created : 2014-10-27T00:40:55+09:00            :
:    guid : 2d8ae58b-1ef9-47de-a61e-bf89143bef64 :
:.........:......................................:
```

仮想サーバーの起動確認は、 sl vs list コマンドで行います。 仮想サーバーの作成(注文)直後は、active_transaction列にAssign Hostと表示されます。 起動が完了すると、active_transaction列のAssign Hostの表示が消えます。


仮想サーバーの削除(キャンセル)
 sl vs cancel コマンドで、 削除対象のサーバーID(1234567)を指定し、仮想サーバーを削除(キャンセル)します。 仮想サーバーの削除は、削除対象サーバーに間違えがないかを再確認するために、コマンド実行後に再度サーバーIDの入力が必要です。
 
```
# slcli vs cancel 1234567
This action cannot be undone! Type "1234567" or press Enter to abort: 1234567
```

補足：便利情報
SLコマンドのその他の機能

SLコマンドの様々な機能を知るには、sl と入力します。 その結果、以下のようなヘルプが表示されます。 主なモジュールとして「Compute」、「Networking」、「Storage」があり、このうちの「Compute」は、ポータル画面の「Devices」とほぼ同じ範囲のものであることが分ります。
 
```
# slcli
Usage: slcli [OPTIONS] COMMAND [ARGS]...

  SoftLayer Command-line Client

Options:
  --format [table|raw|json]  Output format
  -C, --config PATH          Config file location
  --debug [0|1|2|3]          Sets the debug noise level
  -v, --verbose              Sets the debug noise level
  --timings                  Time each API call and display after results
  --proxy TEXT               HTTP[S] proxy to be use to make API calls
  -y, --really               Confirm all prompt actions
  --fixtures                 Use fixtures instead of actually making API calls
  --version                  Show the version and exit.
  -h, --help                 Show this message and exit.

Commands:
  call-api   Call arbitrary API endpoints.
  cdn        Content Delivery Network.
  config     CLI configuration.
  dns        Domain Name System.
  firewall   Firewalls.
  globalip   Global IP addresses.
  image      Compute images.
  iscsi      iSCSI storage.
  loadbal    Load balancers.
  messaging  Message queue service.
  metadata   Find details about this machine.
  nas        Network Attached Storage.
  rwhois     Referral Whois.
  server     Hardware servers.
  setup      Edit configuration.
  snapshot   Snapshots.
  sshkey     SSH Keys.
  ssl        SSL Certificates.
  subnet     Network subnets.
  summary    Account summary.
  ticket     Support tickets.
  vlan       Network VLANs.
  vs         Virtual Servers.

  To use most commands your SoftLayer username and api_key need to be
  configured. The easiest way to do that is to use: 'slcli setup'
```