IBM Cloud: Classic InfrastructureのslcliコマンドをCentOS7でセットアップする


1. はじめに

IBM Cloudのコマンドはibmcloudに統合されつつあるが、いまだにClassic Infrastructureに限っては旧SoftLayer時代からの産物であるslcliコマンドの方が機能が豊富である。かなり昔々に(もう6年ぐらい前?)セットアップ方法をqiitaに書いた気がするのだが、

  • CentOS7などでは未だにpython 2.7が使われている。
  • pythonは3.x系が主流となってきており、slcliコマンドもv5.8.1からpython 2.7のサポートがdropされた。

ことを考慮し、Step by Stepで最新のslcliコマンドのセットアップ方法を改めて書いてみた。

2. Python 3.x環境の構築

前述のとおり、CentOS7ではpython 2.7が未だに使われておりデフォルトで構成されている。python 3.xを導入しても、内部的にpython 2.7が呼ばれては困るので、まずはこの記事に従ってpython 3.xがデフォルトで稼働する仮想環境(venv)を作成する。

仮想環境の作成
#OSの最新化
[root@syasudacentos7 ~]# yum update -y

#バージョン確認
[root@syasudacentos7 ~]# python -V
Python 2.7.5

#Python 3.6系の導入
[root@syasudacentos7 ~]# yum install -y python3
[root@syasudacentos7 ~]# python3 -V
Python 3.6.8

#venvの作成
[root@syasudacentos7 ~]# mkdir -pv python368
[root@syasudacentos7 ~]# python3 -mvenv python368
venvの動作確認
#venvへのアクセス
[root@syasudacentos7 ~]# source python368/bin/activate

#Pythonのバージョン確認
(python368) [root@syasudacentos7 ~]# python -V
Python 3.6.8

#venvから抜ける
(python368) [root@syasudacentos7 ~]# deactivate
[root@syasudacentos7 ~]#

3. slcliの導入

slicliのrelease notesはhttps://github.com/softlayer/softlayer-python/releases

slcliの導入
[root@syasudacentos7 ~]# source python368/bin/activate
(python368) [root@syasudacentos7 ~]# pip install --upgrade pip
(python368) [root@syasudacentos7 ~]# pip install SoftLayer
(python368) [root@syasudacentos7 ~]# slcli --version
Current: slcli (SoftLayer Command-line) v5.9.7
Latest:  slcli (SoftLayer Command-line) v5.9.7

4. slcliの設定

事前にClassic InfrastructureのUsernameおよびAPI Keyを確認しておく。
https://cloud.ibm.com/docs/account?topic=account-classic_keys

Manage -> Access(IAM) -> Users -> 該当のユーザーにて確認可能。
- Usernameは、<account_ID>_<email_address>の形式であり、VPN password欄に表示されているUser nameを利用する

- API Keyは上記画面からClassic Infrastructure API keyを作成し、以下を参照する

slcliセットアップ
(python368) [root@syasudacentos7 ~]# slcli setup
Username []: [email protected]
API Key or Password []:
Endpoint (public|private|custom) [https://api.softlayer.com/xmlrpc/v3.1]: private
Timeout [0]:
:..............:..................................................................:
:         name : value                                                            :
:..............:..................................................................:
:     Username : [email protected]                                      :
:      API Key : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx :
: Endpoint URL : https://api.service.softlayer.com/xmlrpc/v3.1/                   :
:      Timeout : not set                                                          :
:..............:..................................................................:
Are you sure you want to write settings to "/root/.softlayer"? [Y/n]: Y
Configuration Updated Successfully

5. テスト

(python368) [root@syasudacentos7 ~]# slcli account summary
:..................................................................:
:                         Account Snapshot                         :
:.........................:........................................:
:                    Name : Value                                  :
:.........................:........................................:
:            Company Name : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx :
:                 Balance : None                                   :
:        Upcoming Invoice : None                                   :
:         Image Templates : 51                                     :
:         Dedicated Hosts : 0                                      :
:                Hardware : 14                                     :
:          Virtual Guests : 66                                     :
:                 Domains : 2                                      :
: Network Storage Volumes : 529                                    :
:            Open Tickets : 5                                      :
:           Network Vlans : 42                                     :
:                 Subnets : 106                                    :
:                   Users : 98                                     :
:.........................:........................................: