#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へのアクセス
[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
[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を作成し、以下を参照する
(python368) [root@syasudacentos7 ~]# slcli setup
Username []: xxxxxxx_xxxxxxx@xx.xxx.xxx
API Key or Password []:
Endpoint (public|private|custom) [https://api.softlayer.com/xmlrpc/v3.1]: private
Timeout [0]:
:..............:..................................................................:
: name : value :
:..............:..................................................................:
: Username : xxxxxxx_xxxxxxx@xx.xxx.xxx :
: 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 :
:.........................:........................................: