はじめに
自宅で常時稼働しているSynologyのDS215jに先日構築した'roomba_client'をデプロイし、
ネットワーク上の各デバイスからいつでも簡単にルンバを操作できるようにしました。
環境
- クライアント:MacBook Pro macOS High Sierra Version 10.13.2
- サーバ:Synology DS215j DSM 6.1.4
DS215jにSSH接続
DS215jにSSH接続するためには設定を変更する必要があります。
Control Panelで右上の「Advance Mode」を押下します。
遷移先の画面で「Terminal & SNMP」を選択します。
Enable SSH Serviceにチェックを入れ、Portにポート番号を指定します。
以上で、ターミナル等からSSH接続が可能になります。
$ ssh <user_name>@<ds215j_ip_address> -p <port_number>
ビルド
DS215jにデプロイするSpring bootのFully Executable Jarを作成するため、
build.gradleに次の設定を追加し、gradle buildします。
build.gradle
springBoot {
executable = true
}
$ gradle build
デプロイとサービス登録
DS215にビルドしたroomba_client.jarを配置します。
$ ls <deploy_destination> roomba_client.jar
Upstartでサービスを管理するため/etc/initにroomba-client.confを作成します。
これでroomba-clientがdaemon化され、システム起動時に自動で立ち上がるようになりました。
/etc/init/roomba-client.conf
description "roomba_client daemon" author "Hiroki Sawano <hiroki.sawano.2512@gmail.com>" start on runlevel [2345] stop on runlevel [016] respawn # attempt service restart if stops abruptly exec <java_installation_path>/java -jar <deploy_destination>/roomba_client.jar
動作確認
roomba-clientを起動します。 ここでは手動で起動しています。
$ initctl list | grep roomba-client roomba-client stop/waiting $ sudo start roomba-client roomba-client start/running, process 11518 $ sudo tail -f /var/log/upstart/roomba-client.log … …jp.gr.java_conf.hs.roomba.client.Roomba : Connected to Roomba … …j.g.j.hs.roomba.client.RoombaClient : Started RoombaClient in 67.775 seconds (JVM running for 71.916)
Webブラウザからアプリケーション(<ds215j_ip_address>:8080)にアクセスすると正常起動していることが確認できます。