リモートCLIについて
OSvには簡易シェルとしてLua CLIが用意されていて、capstan経由でLua CLIしか入ってないVMイメージが配布されていたりするのですが、実はこのCLIは全てREST API上に実装されています。
つまり、常にhttp://127.0.0.1:8000/へRESTを送ってシステムのAPIを叩いており、そのままこのCLI実装をOSvの外側に持って行けばリモートCLIとして使う事が出来ます。
そもそもそういう意図で実装されていたのですが、最近までOSvの外側で動かすためのテストと配布イメージ作成が行われていませんでした。
最近になってLinux環境にインストール可能な配布イメージを作成出来るようになったので、ビルド方法・インストール方法・使い方をご紹介します。
リモートCLIのビルド方法
ビルド済みイメージを後述のURLから配布しますので、通常この作業は必要ありません。
ディストリビューションでパッケージを作る用途などにお使い下さい。
なお、このビルド方法は今の所Fedora20でのみ動作が確認されています。
git clone https://github.com/cloudius-systems/osv.git cd osv git submodule update --init --recursive sudo scripts/setup.py cd modules/cli make rpm
以上のコマンドでrpmbuild/RPMS/x86_64/osv-cli-1.0-1.fc20.x86_64.rpmにRPM形式で、rpmbuild/SOURCES/osv-cli-1.0.tar.gzにtar.gz形式で配布イメージが出力されます。
ビルド済みイメージのダウンロード
配布イメージのインストール
RPMの場合
yum install osv-cli-1.0-1.fc20.x86_64.rpm
tar.gzの場合
tar xpf osv-cli-1.0.tar.gz mv osv-cli-1.0/usr/lib64/osv-cli /usr/lib64 echo "(cd /usr/lib64/osv-cli && exec ./cli \$@)" > /usr/bin/cli chmod a+rx /usr/bin/cli
使い方
シェル1(OSvを起動)
$ capstan run -n 'bridge' cloudius/osv-tomcat Created instance: cloudius-osv-tomcat OSv v0.16 eth0: 192.168.122.72
IPアドレスをメモ。
シェル2(リモートCLIを起動)
$ cli -a http://192.168.122.72:8000 /# ls dev/ etc/ init/ java/ java.so libhttpserver.so libtools.so libuutil.so libzfs.so proc/ tmp/ tools/ usr/ zfs.so zpool.so /# cat etc/hosts 127.0.0.1 localhost osv.local /# api os version v0.16 /#
次回予告
今回はRESTサーバに対するセキュリティ設定(鍵認証設定)、CLIの使い方に言及しなかったので、次回はこのあたりを解説していきます。