OSv CLIの使い方
リモートCLIについて - かーねる・う゛いえむにっきでも紹介したCLIの使い方についてです。
リモートCLIに必要なもの
まず、Linuxホスト側でCLIをインストールする必要があります(参照)。
その上で、httpserver(REST APIサーバ)を含むOSvのイメージを実行する必要があります。
Capstan経由で配布されているディスクイメージやosv.ioで配布されているディスクイメージは全てhttpserverを含んだイメージですが、OSvをソースコードからビルドする場合はhttpserverを明示的に指定する必要があります。
つまり、
git clone https://github.com/cloudius-systems/osv.git cd osv git submodule update --init --recursive make image=ruby-publify
ではなく、
git clone https://github.com/cloudius-systems/osv.git cd osv git submodule update --init --recursive make image=ruby-publify,httpserver
のようにビルドする必要があります。
CLI on OSvに必要なもの
CLIとアプリケーションとで1つのコンソールを共有するので、アプリケーションと同時にCLIを実行出来るのはアプリケーションが継続的なコンソール出力を行わない・コンソール入力を要求していない場合に限ります(OSvに切り替え可能な仮想コンソールはありません)。
コンソールの使用が競合してもCLIとアプリケーションは正常に動作しますが、出力や入力が入り交じって使えないものになってしまいます。
git clone https://github.com/cloudius-systems/osv.git cd osv git submodule update --init --recursive make image=tomcat,cli
のようにビルドするとTomcatとCLIが同時に起動されるイメージを作る事が出来ます。
Capstanで配布されているイメージとしてcloudius/osvというCLIのみを含んだものがありますが、このイメージではJavaや他の言語ランタイムを一切含んでいないため、簡単にユーザプログラムを追加・実行するのが難しくあまり役に立ちません(※ネイティブバイナリを試すことは簡単にできます)。
CLIの使い方
help
help でコマンド一覧を表示します。
help <コマンド名>でコマンド毎の使い方を表示します。
exit
OSを停止します。poweroffと同じ動作になります。
Unix風コマンド群
cat, cd, date, df, dmesg, echo, free, ls, mkdir, poweroff, reboot, rm, top, uptimeについては同名のUnixコマンド風の動作を行います(引数などがPOSIX準拠になっているわけではありません)。
api
他のコマンド群はREST APIをラップして通常のUnixコマンドなどのように振る舞うのに対し、apiコマンドはユーザが直接REST APIを操作するためのものです。
使い勝手は他のコマンド群に劣りますが、現状ではapiコマンドを経由してしかアクセス出来ない機能が多数存在するため、このコマンドを使う事がほとんど必須になります。
api でos, jvm, networkなどのAPIクラス名の一覧が表示されます。
api <クラス名> でAPIクラスが持つメソッドが表示されます。この時、HTTPメソッド種別が特に書いていない説明の行はGETメソッドで、[POST]と書かれている行はPOSTメソッドになります。
GET以外のHTTPメソッドを実行するには、api -m
例えばos.rebootを実行する場合は以下のようになります:
# api -m POST os reboot
POSTにパラメータが必要な場合は以下のように「変数名=値」の形式で指定します。
/# api os hostname osv.local /# api -m POST os hostname name=osv1 /# api os hostname osv1
POSTに必要な変数名などの細かい情報はCLIのヘルプには表示されないので、WebブラウザでRESTサーバへ接続してREST APIのドキュメントを読んで下さい。
REST APIのドキュメントは http://
常に最新版がアップロードされているとは限りませんが、REST APIのドキュメントはこちらにミラーされています:OSv API