RaspberrtPi3でSlackBotを動かす設定
はじめに
久しぶりにラズパイでslackbotを動かしたくなったので、設定した内容まとめ。
過去に一度設定したけど、微塵も覚えてないので、まとめついでに一から設定します。
ついでに、前に設定してなかったip固定とかsystemctlに登録とかしときます。
前提
作業しているPC:Mac(Sierra 10.12.6)
ラズパイ:Raspberry Pi 3 Model B
OS設定編(Macでの作業)
前回何設定したか覚えてないので、OS入れ直してついでにIPを固定しておく。
OSはここから好きなものをダウンロードする。
今回はRaspbianのwith Desktopの方を入れる。
※普通にライトで良かったなーと今更思った。
ダウンロードが終わったらSDカードをMacに挿してOSを入れる。
ここの処理を間違えると悲惨なことになるらしいので要注意。
# コピー先を探す $ diskutil list # 一旦外す $ diskutil unmountDisk /dev/disk6(※今回はたまたまdisk6だった) # コピーする $ sudo dd bs=1m if=[入れたいOS] of=/dev/rdisk6
ラズパイを起動する前にSSHの設定をしておく。
予めsshファイルを作って置けば最初からSSHで繋がるようになっているらしい。
やっとかないとあとで設定が必要そう。
# 中身はなくていいから作るだけ作っとく $ touch /Volumes/boot/ssh
ラズパイ設定編
ラズパイを起動し早速ターミナルでいろいろ設定。
IP固定化
いちいち変わられても接続するのが面倒くさいので固定する。
$ sudo vi /etc/dhcpcd.conf # 以下内容を追記 interface wlan0 static ip_address=[設定したい固定IPアドレス]/24 static routers=[デフォルトゲートウェイのIPアドレス] static domain_name_servers=[DNSサーバーのIPアドレス] # [SSID]と[PASSPHRASE]は環境に合わせて変更 # /etc/wpa_supplicant/wpa_supplicant.confにパスワードが書かれるので、嫌なら消しとく $ sudo sh -c 'wpa_passphrase [SSID] [PASSPHRASE] >> /etc/wpa_supplicant/wpa_supplicant.conf' # 最後に再起動 $ reboot
これでipアドレスが固定されればOK。
slackbotを入れて動かす
botはPythonで動かすことにする。
Slack側の設定は終わってる前提です。
ライブラリはpip3 install slackbot
でインストールしておく。
※ついでにvimも入れとく人はsudo apt-get install vim
も叩いとく。
準備が出来たらbotを作成する。
とりあえず最小構成で動くとこまで。
フォルダ構成、ソースは以下の通り。
$ cd '任意のフォルダ' # bot動かすファイル $ touch run.py # botの設定を書くファイル $ touch slackbot_setting.py # プラグインを入れとくフォルダ作成 $ mkdir plugins # プラグインとして認識してもらうために、空ファイルでいいので作成 $ touch ./plugins/__init__.py
# -*- coding: utf-8 -*- from slackbot.bot import Bot def main(): bot = Bot() bot.run() if __name__ == "__main__": main()
# -*- coding: utf-8 -*- API_TOKEN = "slackで確認したTOKEN" default_reply = "は?何言ってんの?" PLUGINS = [ 'plugins' ]
ファイルを用意したら、python3 run.py
で起動。
話しかけて、返事してくれればOK。
botをサービス化しとく
python3 run.py &
とかで動かしておいても問題ないけど、一応ちゃんと設定しておく。
手順とファイルの内容は下記の通り。
# unit定義ファイル作成 $ sudo vim /etc/systemd/system/runUbibot.service # リストにいることを確認 $ sudo systemctl list-unit-files --type=service | grep runUbibot # 自動起動設定しておく $ sudo systemctl enable runUbibot.service # 起動 $ sudo systemctl start runUbibot.service
[Unit] Description = 説明 [Service] ExecStart = ~~/start.sh(絶対パスで) # 再起動設定 Restart = alwasy Type = simple [Install] WantedBy = multi-user.target
# このファイルに実行権限を与えとく`chmod 0777`とか #!/bin/bash # 直接これを指定する方法がわからなかったので、shell経由 python3 run.py
これで動いていればOK。
まとめ
これでいつ、ラズパイが消し飛んでも復活できるはず。
備忘録としてまとめておきます。