さくらのクラウドのサーバの tig ライクな TUI ツール

この記事は「さくらインターネット Advent Calendar 2017」の4日目の記事です。

概要

termbox-goさくらのクラウドAPIを利用して tig ライクな TUI ツールを開発しています。

github.com

peco のようにサーバ名での絞り込みも可能です。

使い方

こちらからバイナリをダウンロードします。また、2017年12月4日現在、設定ファイルとして usacloud の設定ファイルを参照しています。こちらのドキュメントを参考に usacloud の初期設定をするか、もしくは usacloud の設定ファイルのパスである ~/.usacloud/default/config.json上記 usacloud のドキュメントを参考にしつつ下記の項目を埋める必要があります。

{
  "AccessToken": "xxxx",
  "AccessTokenSecret": "xxxx",
  "Zone": "xxxx"
}

仕様

f:id:blp1526:20171204030946g:plain

上記の gif が全てですが、isac コマンドの流れとしては

  • さくらのクラウドAPI に対して GET /server を実行して全サーバ情報を取得します。
    • デフォルトでは usacloud の設定ファイルで指定したゾーンに対してリクエストします。
    • オプションとして isac --zones is1b,tk1a のようにカンマ区切りでゾーン名を指定することによって、複数のゾーンのサーバ情報を取得することも可能です。
  • ターミナルにサーバの一覧が表示されます。
    • デフォルトでは Server.ID はマスキングされています。
      • Server.ID を表示したい場合には isac --show-server-id オプションを利用します。
    • ESC もしくは Ctrl-c で終了します。
    • 上矢印もしくは Ctrl-p で上に移動します。
    • 下矢印もしくは Ctrl-n で下に移動します。
    • Ctrl-u で down しているサーバを起動します。
    • Ctrl-r でサーバ一覧の再取得します。
    • 文字列を打ち込むことによってサーバ名をフィルタリングします。
    • Delete もしくは Ctrl-h でフィルタリングの文字列を1文字削除します。

開発動機

停止しているサーバを起動したいだけなのに「ブラウザを起動して、ログインして、画面遷移をして...」をするのは大げさかなあと思うことがあったりするためです。また、複数ゾーンを跨いで確認できるようにしたのは、停止忘れのサーバを手軽に確認したいなどのためです。今後も適宜機能を追加する予定です。

以上、「さくらインターネット Advent Calendar 2017」の4日目の記事でした。