IDCF テックブログ

IDCF テックブログ

クラウド・データセンターを提供するIDCフロンティアの公式テックブログ

idcfcloud-cliに追加機能「コンピューティング」が登場!

こんにちは、永岡です。

今回は僕からidcfcloud-cliの話をします!
β版として実装されていたコンピューティングを1月30日についに正式リリースいたしました!本記事では追加された機能やcloudstack-apiとの違いについて紹介していきたいと思います。

f:id:ynagaoka:20180205211518p:plain


idcfcloud-cliとはその名のとおり、IDCFクラウドをコマンドラインから操作するためのインターフェースです。今回のアップデートによりIDCFクラウドの主要なサービスにほぼ対応いたしました。これにより1つのコマンドでIDCFクラウドの複数サービスを操作・実行できるようになり、システム連携や管理の自動化などがより簡単に行える環境になりました!

インストールや初期設定、対応サービスの説明はこれまでのエントリーでご覧いただけます!

Ubuntu 16.04 環境
blog.idcf.jp
CentOS 7.x 環境
blog.idcf.jp
idcfcloud-cliアップデート第1弾!
blog.idcf.jp

既にインストール済みの方は、次のコマンドでアップデート可能です。

$ sudo gem update idcfcloud
$ sudo idcfcloud init


それでは、今回追加された機能について見ていきましょう!

コンピューティングを試してみる

今回idcfcloud-cliに追加されたコンピューティングを実際に使用して仮想マシンを作成してみましょう。

仮想マシンを作成するにあたり、必要となるパラメータを確認していきます。

まずは、作成したいゾーンのIDを取得します。
オプションによりゾーン名とゾーンIDをテーブル形式で表示させます。

$ idcfcloud compute listZones -o table -f name,id
+--------+------------------------------------+
|name    |id                                  |
|augusta |bcb92d62-3d5a-47cf-aba2-01a012d3db07|
|monstera|66466a55-0bbc-45ad-a621-a06ffcdc81f8|
+--------+------------------------------------+

続いてマシンスペックとテンプレートの一覧をそれぞれ表示します。
・マシンスペック

$ idcfcloud compute listServiceOfferings -o table -f displaytext,id
+------------------------------------------------+------------------------------------+
|displaytext                                                  |id        |
|1 CPU x 0.8 GHz / 1 GB RAM                      |b851997e-1c80-429c-9739-390e0a564989|
|1 CPU x 1.6 GHz / 2 GB RAM                      |2504abf9-5db6-45a4-bf58-aea02731010a|
|1 CPU x 2.4 GHz / 4 GB RAM                      |e9a38771-7569-4d7b-a3f9-5445edb5e423|
                                          ~中略~
|24 CPU x 2.5 GHz / 128 GB RAM - Dedicated HighIO|ed444cb7-a06e-49f2-bd39-8b2f125789ad|
|40 CPU x 2.6 GHz / 128 GB RAM - Dedicated HighIO|ef3d51af-f8fe-473a-ad1f-3681c4a62e61|
+------------------------------------------------+------------------------------------+

・テンプレート
'{"templatefilter":"featured"}'によりIDCFクラウドで標準提供しているテンプレートを表示します。
オプションの詳細などはAPIリファレンスに記載されていますのでご参照ください。

$  idcfcloud compute listTemplates '{"templatefilter":"featured"}' -o table -f name,id,zonename
+--------------------------------------------------------------------+------------------------------------+--------+
|name                                                                |id                                  |zonename|
|Windows Server 2016 Std + SQL2016 Std SP1                           |e667ba68-f88c-4c67-a115-0382a561a933|monstera|
|CentOS 7.4 64-bit                                                   |29fa0597-b476-45d7-85e2-71be350f155d|monstera|
以下略

次に仮想マシンにSSH接続する際の鍵ペアの一覧を表示します。

$  idcfcloud compute listSSHKeyPairs -o table -f name
+---------+
|name     |
|cli-test |
+---------+

これまで確認してきたデータをもとにパラメータを設定し仮想マシンを作成します。
今回は次の条件で作成します。
ゾーン:augusta、マシンスペック:Light.S1 、テンプレート:CentOS 7.4
SSH鍵:cli-test、仮想マシン名:morio

$ idcfcloud compute deployVirtualMachine '{"zoneid":"bcb92d62-3d5a-47cf-aba2-01a012d3db07","serviceofferingid":"b851997e-1c80-429c-9739-390e0a564989","templateid":"29fa0597-b476-45d7-85e2-71be350f155d","keypair":"cli-test","name":"morio"}'
{
  "status": 200,
  "message": "",
  "data": {
    "id": "72c3e278-e0f1-3352-9096-ace543039994",
    "name": "morio",
    "displayname": "morio",
以下略

上記のようなメッセージが表示されると無事作成されています。
ちゃんと作成できているかは次のコマンドで確認できますので是非試してみてくださいね。

$ idcfcloud compute listVirtualMachines -o table -f name,id,zonename
+-------+---------------------------------------------+
|name   |id                                  |zonename|
|morio  |97759930-ed0f-4dd0-a526-f913695c1a33|augusta |
+-------+---------------------------------------------+

コマンドの詳細や各オプションに関しては、同日にオープンしたAPI Docs内の「APIリファレンス」でご覧いただけます。「API Docs」ではIDCFクラウドで提供しているCLIツール、各種APIのドキュメントを集約してあるので是非ご覧ください!

API Docs | IDCFクラウド

cloudstack-apiからの変更点

さて、先ほど仮想マシンの作成を実際にやってみましたがcloudstack-apiを使ったことのある方は何か違いに気づいたのではないでしょうか。

...そうです!オプションの設定方法が違ったのです!
次からはcloudstack-apiとの変更点を具体的に見ていきましょう!

コマンドよりコンフィグ設定が可能に

cloudstack-apiでは~/.idcfrcを直接編集していましたが、idcfcloud-cliでは次のコマンドを実行することで自動でコンフィグ設定が可能になりました。
また、設定ファイルの内容を変更することで手動で設定も可能です。

初期設定:$ sudo idcfcloud init

変更:$ sudo idcfcloud configure

オプションの設定方法

cloudstack-apiと比べ、オプションの設定方法が変更した点があります。
今回は次の2つの変更点ご紹介したいと思います。

表示形式

CSV形式やテーブル形式などの表示形式の設定方法が変わりました。ここではテーブル形式を例に紹介します。

cloudstack-apiではテーブル形式のオプションは"-t"でしたが、idcfcloud-cliでは"-o table"で表示が可能になりました。

変更前:$ cloudstack-api <メソッド> -t name,id

変更後:$ idcfcloud compute <メソッド> -o table -f name,id
メソッドパラメータへの入力方法

メソッドのパラメータへの入力方法が変わりました。ここでは、仮想マシン作成時にも使用した"listTemplate"を例として紹介します。
"listTemplate"コマンドを実行する際に設定する”Templatefilter"の設定方式がjson形式に変更されました。

変更前:$ cloudstack-api listTemplates --templatefilter featured 

変更後:$ idcfcloud compute listTemplates '{"templatefilter":"featured"}' 
非同期メソッドをCLI上は同期に

cloudstack-apiでは、deployVirtualMachineのような非同期メソッドを実行するとコマンド実行はすぐに完了します。その後、仮想マシンが作成されたかどうかをqueryAsyncJobResultを定期的に実行しジョブが完了したかどうかをチェックしていたと思います。
idcfcloud-cliでは、非同期メソッドのコマンド実行時では、ジョブ完了まで確認して終了となります。そのため、queryAsyncJobResultを定期的に確認することが不要となりました。

最後に

今回のアップデートによりIDCFクラウド主要サービスをほぼカバーしており、仮想マシン作成からインフィニットLBの作成、DNSの登録など様々な機能をコマンドで実行可能になりました。
まだAPIを使ったことがない人も、cloudstack-apiから乗り換えたい人も是非この機会に使い易くなったidcfcloud-cliを使っていただけると幸いです。
今後も新サービスや新機能の追加があり次第対応していきますのでお楽しみに!

Copyright © IDC Frontier Inc.