このページでは、mshを利用してSACMをCUIから操作する手順について解説します。
msh動作条件については、概要の動作条件項目をご参照ください。
mshはRubyで一般的なパッケージ管理システムであるgemを利用してインストールします。 次のいずれかの方法でインストールすることが可能です。
gemパッケージは下記のいずれかの方法で取得できます。
ビルド済みのgemパッケージをダウンロードする
wget http://dev.smf.jp/dl/msh-0.5.1.gem
githubからソースを取得し、ビルドする
$ git clone git://github.com/seil-smf/msh.git
$ cd msh
$ gem build msh.gemspec
取得したmshのgemパッケージを配置してあるディレクトリにて下記のコマンドを実行します。
$ gem install msh
注釈
システムにgemをインストールする際、Rubyの実行環境によってはroot権限が必要となります。
$ gem list msh
*** LOCAL GEMS ***
msh (*.*.*)
$
インストールされているとバージョンが表示されます。
mshのインストール手順は以上です。 次に、mshの動作に必要な設定ファイルについて解説します。
mshの動作にはAPIアクセスキーなど各種設定を用意した設定ファイルを記述する必要があります。設定ファイルは"~/.msh/mshrc"に保存します。
必要な設定情報は次の通りです。
設定項目 |
説明 |
---|---|
access_key |
API実行用のアクセスキー |
access_key_secret |
API実行用のアクセスキーのパスワード |
domain |
APIリソースのドメイン |
path |
APIリソースが配置してあるパス |
user_code |
マネージメントコード |
proxy_addr |
プロキシサーバのアドレス |
proxy_port |
プロキシサーバのポート |
ssl_verify |
証明書の検証を行うかどうか |
access_key, access_key_secret
APIアクセスキーはSACMのコントロールパネルから取得します。
domain
各OEMのコントロールパネルにログインする際のURLのドメインです。(例: [OEM名].sacm.jp)
path
現在、いずれのOEMにおいても"/public-api/v1"となります。将来的にAPIのバージョンが上がった場合は変更される可能性があります。
proxy_addr, proxy_port
mshを実行するホストでプロキシを経由してインターネットにアクセスする場合は、プロキシサーバのアドレスおよび、ポート番号を指定してください。プロキシサーバを経由しない場合は設定する必要はありません(行自体を記述しないでください)。
ssl_verify
SSL Verifyは基本的にtrueに設定してください。
$ vi ~/.msh/mshrc
access_key: access_key_string
access_key_secret: access_key_secret_string
domain: demo.sacm.jp
path: /public-api/v1
user_code: tsa********
proxy_addr: proxy.****.jp
proxy_port: 8081
ssl_verify: true
mshには設定ファイルを切り替えるためのコマンド(set mshrc)が実装されています。 set mshrcコマンドを利用することで、設定ファイルをmshの環境変数に反映させることができます。 この機能を利用する場合は、「~/.msh/」以下にmshrc.*ファイルを配置してください。(この際、ファイル名のプレフィックスが"mshrc."であればファイル名には特に制限はありません)
gemコマンドでインストールしたのち、シェルからmshコマンドを実行することで対話形式の実行環境が起動します。
$ msh
mshが起動すると、次のようなプロンプトが表示されてコマンドの入力待ち状態になります。
msh(tsa********)>
この状態でコマンドを入力することによって SACM の各種機能をコマンドラインから利用することができます。
helpコマンドを実行することで、mshで実行可能なコマンドの一覧が表示されます。
msh(tsa********)> help
helpコマンドにヘルプを確認したいコマンド名を入力すると、より詳細なヘルプを確認できます
msh(tsa********)> help ping
help ping
Name :
ping - ping command
SYNOPSIS:
$ ping <SA Code> <IPAddress> [size <Size>] [count <Count>] [targettime <Target Time>]
msh(tsa********)>
次に、test用のAPIが実行可能か確認するtestコマンドを実行し、mshからSACM APIが利用できる状態になっているかどうか確認します。 次のような出力が得られれば、mshのホストとSACMとの疎通は問題ありません。 もし、Failedになっている項目がある場合、設定を確認してください。
msh(tsa********)> test
GET Test is Successed.
POST Test is Successed.
PUT Test is Successed.
DELETE Test is Successed.
msh(tsa********)>
コマンドの実行中、Ctrl+C を入力することによりコマンドの実行を中止することができます。 対話形式で実行中のmshを終了する場合は、コマンドが入力可能なプロンプトが表示されている状態で Ctrl+D を入力することでmshのプロセスが終了します。 mshの終了は exit コマンドや quit コマンドでも可能です。
mshでは通常の bash シェルのように emacs 風のキーバインドやコマンドのヒストリ機能が利用可能です。 例えば、Ctrl+Rによるヒストリからのコマンドの検索や、Ctrl+Iによる入力候補の表示や補完を行うことができます。
msh(tsa********)> p(Tab key)
msh(tsa********)> ping
bashやzsh等のunixシェル上からmshコマンドに引数を渡して実行することで、引数に指定したmshコマンドを実行できます。 先ほどのtestコマンドの場合次のように入力することで実行できます。
$ msh test
mshからオペレーションコマンドを利用するためには、オペレーションタスクを実行するサービスアダプタがSACMの管理下に置かれている必要があります。 SACMへサービスアダプタを登録するための手順についてはSACMマニュアルを参照してください。
mshのオペレーション系のコマンドは同名のSACM APIの機能を利用します。基本的に即時実行するものとしてタスクの登録が行われます。targettimeオプションを利用することで実行予定日時の指定ができますが、その場合はタスクのSACMへの登録結果のみを表示し、オペレーションタスクの実行結果は表示されません。
今回のチュートリアルではpingコマンドによる疎通の確認と、md-commandによるサービスアダプタ上での任意コマンド実行を行います。
pingコマンド
pingコマンドの書式は以下の通りです。
msh(tsa********)> ping <SA Code> <IPAddress> [size <Size>] [count <Count>] [targettime <Target Time>]
pingコマンドの実行例は以下の通りです。 mshのpingコマンドは、SACMのpingタスクを登録し、実行結果を表示します。
msh(tsa********)> ping tsw11111111 127.0.0.1
..
5 packets transmitted, 5 packets received, 0.0% packet loss
msh(tsa********)>
md-commandコマンド
md-commandコマンドの書式は以下の通りです。
msh(tsa********)> md-command <SA Code> <Module ID> <Command> [targettime <Target Time>]
md-commandコマンドの実行例は以下の通りです。 md-commandによるpingコマンド実行は、SACMのpingタスクではなくサービスアダプタに実装されているpingコマンド実行します。 そのため、count等を適切に設定していない場合、タイムアウトしたり、長時間サービスアダプタが操作不能になる可能性があります。
msh(tsa********)> md-command tsw00000000 0 ping 127.0.0.1 count 3
.
PING localhost (127.0.0.1): 44 data bytes
56 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.202 ms
56 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.188 ms
56 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.169 ms
----localhost PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.169/0.187/0.202/0.017 ms
msh(tsa********>
以上で、チュートリアルは終了です。