Edited at

ConoHa用コマンドラインツール(CLI)を公開したよ!

ConoHa 用コマンドラインツール(CLI)をPyPIで公開いたしました!

簡単にインストールでき、ConoHa を コマンドライン上から、

VM作成、起動、停止、再起動、スナップショット作成などが行えるようになってます。

新しくConoHa始める方、ぜひここから始めてね。笑

https://www.conoha.jp/referral/?token=vLXmPMcQyHDH3I_8ory0ayLI9m9HQsUOPK0wjPJPYtBsmnt5GCE-FN7




:robot: インストール手順

以下のコマンドを実行することで conoha コマンドが利用可能になります。(Python3 必須)

$ pip3 install conoha

インストール後、以下のコマンドを実行することで初期設定が完了します。:

$ conoha

username: XXXX
password: XXXX
tenant_id: XXXX
Authentication success.

初期設定を行った内容は ~/.conoha/config にTOML形式で保存されます。

※ユーザ情報が登録されているリージョンは自動で判定されます。


:lifter_tone3: 使い方

各コマンドには様々なオプションが存在し --helpオプションで調べることができます。


VM系

VM一覧取得 (JSON形式)

 --outlineオプションを付けると簡略された内容となります。:

$ conoha compute vm list

$ conoha compute vm list --outline

VM一覧取得 (TEXT形式):

$ conoha compute vm list --text

VM作成:

必須オプションのみ

$ conoha compute vm create -i [IMAGE_ID] -f [FLAVOR_ID] --password [ADMIN_PASSWORD]

キーペア指定、VM名指定
$ conoha compute vm create -i [IMAGE_ID] -f [FLAVOR_ID] --password [ADMIN_PASSWORD] -k [KEYPAIR_NAME] -n [VM_NAME]

VM起動:

$ conoha compute vm up [VM_ID]

VM再起動:

$ conoha compute vm reboot [VM_ID]

VM通常停止:

$ conoha compute vm stop [VM_ID]

VM強制停止:

$ conoha compute vm stop [VM_ID] --force


FLAVOR(プラン)系

プラン一覧取得(JSON形式)

 --outlineオプションを付けると簡略された内容となります。:

$ conoha compute flavor list

$ conoha compute flavor list --outline

プラン一覧取得(TEXT形式):

$ conoha compute flavor list --text


IMAGE系

イメージ一覧取得(JSON形式)

 --outlineオプションを付けると簡略された内容となります。:

$ conoha compute image list

$ conoha compute image list --outline

イメージ一覧取得(TEXT形式):

$ conoha compute image list --text

指定したVMのスナップショットをイメージとして保存:

$ conoha compute image save [VM_ID]


その他

アカウントの請求情報などを取得するコマンドも用意しており、順次拡張予定です。


:star: おすすめの使い方

JSONを超絶に読みやすくする jq コマンド というものがあり、この conohaコマンドの結果をパイプしてjqコマンドに渡すことで、欲しい結果を瞬時に得られることでしょう!

$ conoha compute vm list | jq .

$ conoha compute flavor list | jq .
$ conoha compute image list | jq .


:wave: 余談

他にもConoHa-CLIなるものは幾つか既に存在したのですが、

Vagrant向けに特化されていたり、結果をJSON形式で取得したかったため、今回開発することに至りました。

あと、個人的に初めてのPythonによるCLI開発PyPI公開OSS開発だったので

それぞれで得たTipsなどは、また別記事で公開しようと思っております。

最後に、ご意見やプルリクなどどしどしお待ちしております!!