製品・サービス

コラム:ヤマハで社内LANを構築・運用してみよう!
第11回 Luaスクリプトで運用を簡略化しよう! - 第1回 Luaスクリプト入門
フリーランス インフラエンジニア 津村氏 寄稿

1. はじめに

昨今のIoTブームで、最初に作る「Lチカ」という言葉も一時期流行りました。
これは、LEDをチカチカさせる回路およびプログラミングであり、実際、Raspberry PiのGPIO端子などを用いて、ブレッドボード上にカンタンな回路を作ってLEDを点滅させるなどし、いわゆるプログラミングで言うところの「Hello World.」を行った経験のある方もいらっしゃるかも知れません。

昨今のヤマハ ルーターでは、Luaというスクリプト言語を用いてスクリプトをプログラミングし、ルーター実機上で実行する事ができます。Luaそのものは言語としてとてもシンプルであり、併せてRTシリーズで必要な機能は拡張されている為、最小限テキストエディタとUSBメモリのみですぐにプログラミングを始める事ができます。

今回は3回に分け、最終的にヤマハ ルーターからヤマハ スイッチ(SWX2200シリーズ)をスクリプトによりコントロールする事を目標に、Luaスクリプト実行機能を掘り下げてみたいと思います。

1回目の今回は、ヤマハ ルーター実機で実際にルーターのSTATUSランプを点滅させるLuaスクリプトを実行してみましょう。

2. プログラムの実行

細かな事は一旦さておき、プログラムを実行してみましょう。
今回、RTX1210とUSBメモリを用いて、STATUSランプを1秒毎に点滅させるプログラムを実行します。
SDカードなどをご利用の場合は、適宜読み替えてください。

【注意】
実運用中のルーターでのスクリプト実行は、通信障害などの障害となる可能性がある為、お止め下さい。検証用ルーターでの実行を推奨します。
本コラムに掲載のスクリプトを実行した結果について、一切の責任を負いかねます。

FATフォーマットしたUSBメモリに、以下のファイルを保存します。

【LCHIKA.lua】
led, str = rt.hw.open("status-led1")if (led) then
for i = 1, 5 do
led:on()
rt.sleep(1)
led:off()
rt.sleep(1)
endled:off()
led:close()
end

USBメモリを取り出し、ルーターのUSBポートに挿入します。標準の状態でルーターから「ポピ!」というビープ音がすれば成功です。

次に、ルーターのコンソール上(Administratorモード)で、以下のコマンドを実行します。

# lua usb1:/LCHIKA.lua

USBメモリ上からLuaスクリプトが実行され、STATUSランプが、1秒おきに点滅すれば成功です。

3. プログラムの解説

2章の「LCHIKA.lua」を詳しく見て行きましょう。

-- ステータスLEDを制御できるようにled変数に紐付ける
led, str = rt.hw.open("status-led1")-- ledが使用可能か判定する
if (led) then
-- 次のendまでを5回繰り返す
for i = 1, 5 do
-- ledを点灯させる
led:on()
-- スクリプトを1秒停止させる
rt.sleep(1)
-- ledを消灯させる
led:off()
-- スクリプトを1秒停止させる
rt.sleep(1)
end-- 念のため明示的にledを消灯させる
led:off()
-- 以降変数ledを使用しない為、開放する
led:close()
-- 終了
end

変数・ループ・条件分岐といった基礎的な部分は変わらない為、昔BASICやCOBOLといった、何かしらのプログラミング言語を扱った事がある方には、すぐに意味が理解できたかと思います。

言語の詳細やサンプルコードは、以下にナレッジが纏まっており、とても参考になります。

また、Luaそのものはオープンソースプロダクトとして開発・公開がなされており、言語そのものの情報がとても豊富な事もメリットとして挙げられます。

4. 次回予告

次回は実際にヤマハ ルーター上でシステムコマンドを実行する常駐プログラムを作成してみたいと思います。
これにより、通信状態などの監視スクリプトといったものを作成できることを目標とします。

ヤマハネットワーク製品お問い合わせ

購入前のご相談、ご購入先等に関するお問い合わせ

SCSK株式会社
ITプロダクト&サービス事業本部
ネットワークプロダクト部

〒135-8110
東京都江東区豊洲3丁目2番20号
豊洲フロント

E-mail : rt-info@ml.scsk.jp TEL : 03-5859-3032 FAX : 03-5859-3106

製品サポート等(ヤマハネットワーク製品の設置工事、保守)に関するお問い合わせ

SCSK株式会社
CarePlus(ケアプラス)ネットワークサポートサービス

■CarePlusサービス内容や費用、その他総合的なお問い合わせ
E-mail : careplus-info@ml.scsk.jp TEL : 03-5859-3033

■ 技術的なお問い合わせ
E-mail : careplus-tech@ml.scsk.jp