チュートリアル

このページでは、mshを利用してSACMをCUIから操作する手順について解説します。

msh動作条件については、概要の動作条件項目をご参照ください。

インストールと設定

インストール

mshはRubyで一般的なパッケージ管理システムであるgemを利用してインストールします。 次のいずれかの方法でインストールすることが可能です。

gemパッケージを取得 (作成) する

gemパッケージは下記のいずれかの方法で取得できます。

  1. ビルド済みのgemパッケージをダウンロードする
wget http://dev.smf.jp/dl/msh-0.5.1.gem
  1. githubからソースを取得し、ビルドする
$ git clone git://github.com/seil-smf/msh.git
$ cd msh
$ gem build msh.gemspec

gemパッケージのインストール

取得したmshのgemパッケージを配置してあるディレクトリにて下記のコマンドを実行します。

$ gem install msh

ノート

システムにgemをインストールする際、Rubyの実行環境によってはroot権限が必要となります。

インストールの確認

$ gem list msh
*** LOCAL GEMS ***

msh (*.*.*)
$

インストールされているとバージョンが表示されます。

mshのインストール手順は以上です。 次に、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のコントロールパネルから取得します。

    APIアクセスキーの取得方法

  • domain

    各OEMのコントロールパネルにログインする際のURLのドメインです。(例: [OEM名].sacm.jp)

  • path

    現在、いずれのOEMにおいても”/public-api/v1”となります。将来的にAPIのバージョンが上がった場合は変更される可能性があります。

  • proxy_addr, proxy_port

    mshを実行するホストでプロキシを経由してインターネットにアクセスする場合は、プロキシサーバのアドレスおよび、ポート番号を指定してください。プロキシサーバを経由しない場合は設定する必要はありません(行自体を記述しないでください)。

  • ssl_verify

    SSL Verifyは基本的にtrueに設定してください。

msh設定ファイルの書式

$ 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設定ファイルの切り替え

mshには設定ファイルを切り替えるためのコマンド(set mshrc)が実装されています。 set mshrcコマンドを利用することで、設定ファイルをmshの環境変数に反映させることができます。 この機能を利用する場合は、「~/.msh/」以下にmshrc.*ファイルを配置してください。(この際、ファイル名のプレフィックスが”mshrc.”であればファイル名には特に制限はありません)

mshの基本的な実行方法

インタラクティブモード

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********>

以上で、チュートリアルは終了です。