CoffeeScript + RaspberryPiでRedisを使ってみる

mongoDB入れようと思ったらラズパイでインストールできるバージョン古すぎて使えなかったので
CoffeeScriptからRedisを使う覚書

環境

  • Server
    • Raspberry Pi Zero(Raspberry Pi 3に置き換え予定)
    • OS: Raspbian(debian系)
  • Client
    • G-GEAR(ゲーミングノート)
    • OS: Windows10 Home
  • CoffeeScript
    • v2.5.1
  • Node.js
    • v12.13.1
  • Yarn
    • v1.21.1

前提

  • CoffeeScript導入済み
  • Node.js導入済み
  • Yarn(or npm)導入済み
  • Raspberry PiとはSSH通信可能

Redisのインストール

インストール

まずはsudo apt updateでアップデート

その後にsudo apt install redis-serverでRedisをインストールします。

ps aux | grep redisでredisが動いているのを確認できます。

redis-cliで対話的に操作することもできます。
quitで終了できます。

外部からの接続を許可

sudo nano /etc/redis/redis.confでコンフィグファイルを開いて編集します。

1
2
- bind 127.0.0.1 ::1
+ # bind 127.0.0.1 ::1

また、パスワードも設定します。

1
2
- # requirepass ...
+ requirepass ...

sudo service redis-server restartで再起動します。

接続する

まずは接続のためにCoffeeScriptを書きます。
接続にはredisパッケージを使います。

yarn add redisでインストールします。

そして、redis.coffee(名前なんてどうでもいいですけど)を作って認証情報諸々書きます

1
2
3
4
5
6
7
8
9
10
11
12
redis = require 'redis'

config =
host: '192.168.x.x',
port: '6379',
password: 'xxxx'

client = redis.createClient config

client.on 'ready', (err) ->
console.log 'connected.'

hostにはラズパイのローカルIPアドレスを入れます。
passwordにはさっきファイルに書き込んだパスワードを入れます。

正常に接続できればconnected.と表示されるはずです。

おわり

結構簡単でびっくりしました。
まだセキュリティのかけらもないので、諸々やっていきたいと思います。

CoffeeScript書きやすいわ。いいね。

Raspbianで起動時処理を簡単に実装する

私、めんどくさいのが大嫌いなので、超簡単に起動時処理を実装します。

ほとんどの記事ではlocal.rcで実装してたんですが、rootで実行されるのとうまくいかなかったので今回はcronで実装します。

raspi-configの設定

まずは、ネットが接続されるまで処理を待つ設定をします。

(これをしないと正常に動作しないときがあるみたい)

Image from Gyazo

sudo raspi-configを入力

Image from Gyazo

Boot Optionsを選択

Image from Gyazo

Wait for Network at Bootを選択

Image from Gyazo

はいを選択

Image from Gyazo

了解を選択

これでOK

crontabのログ設定

実行されているか確認するために、ログが残るよう設定しましょう。

sudo nano /etc/rsyslog.conf

でファイルを開き

#cron.* /var/log/cron.log

と書いてある行を見つけて、#を外します(コメントアウト)

cron.* /var/log/cron.log

あとはCtrl+Xを押して、保存するか聞かれるのでyを押す。
終わったらログの設定は完了です。

crontabの設定

crontabには@rebootという、起動時に処理されるトリガがあり、今回はこれを利用していきます。
raspbianには標準で備わっているので、利用していきましょう。

crontab -eで編集します。

初回はどのエディタを使うか確認されます。nanoでよければEnterを、他がよければ数字で選択してください。
(私はnano使いなのでそのままEnter)

そしたら、nanoが起動して編集可能になるので、一番下に@reboot [実行したいコマンド]を追記してください。
今回はVNCサーバーが起動時に立ち上がるようにしたかったので、@reboot vncserver -localhost noを追記しました。

そしたら保存して、crontab -lで今入力した内容があるかを確認してください。

再起動

再起動して実行されていればOK。

実行されていなかった場合

しっかりcrontabが動いているかはログで確認できます。

sudo cat /var/log/cron.logを確認して、エラーだったり、入力したコマンドがないようでしたら検索してみてください。

こんな感じで簡単に実装できました。やったぜ。