はじめに
久しぶりにラズパイで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 = always
Type = simple
[Install]
WantedBy = multi-user.target
# このファイルに実行権限を与えとく`chmod 0777`とか
#!/bin/bash
# 直接これを指定する方法がわからなかったので、shell経由
python3 run.py
これで動いていればOK。
おまけ
ユーザの追加
$ sudo /usr/sbin/useradd --groups sudo -m ユーザID
$ sudo passwd ユーザID
passwordの変更
$ sudo passwd 変更したいユーザ
ユーザの削除
$ userdel -r 消したいユーザ
まとめ
これでいつ、ラズパイが消し飛んでも復活できるはず。
備忘録としてまとめておきます。