おうちRaspberryPi環境整理
おうちRaspberryPi環境整理
Ansibleで環境を整備する
現状の環境をメモ
web-signage
/home/pi/web-signage
samba
/etc/samba/sm.conf
nginx
- 不要そう
apache
- 8080でWebDavを提供している
google-notifier
/home/pi/google-home
/home/pi/.xsession から起動している
バックアップ
- crontab
-- root
-- pi
/home/pi/mirror/mirror.sh
/home/pi/slack/
ディスク周り
/etc/fstab
必要なパッケージを列挙
dpkg -lの結果をWindowsにコピー
1000パッケージほどあったぞ・・
Ansibleで環境構築の練習
RaspberryPiを空っぽのOSでブート。
もともと起動していたRaspberryPiのディスクはRaspberryPiにUSBで接続する。
初期設定
- SSH設定
-- /bootに空のsshファイルを作成
- WiFi設定(LANで接続するので不要)
-- wpa_supplicant.conf を/bootに配置
- IP固定はルータ側のDHCPで設定
初回ブート
- ディスプレイ認識OK
- Xが立ち上がった
- IPも設定済み
- SSHログインOK
> code bash
apt-get update
apt-get install ansible
<<
あとはansibleだけで環境を設定していくぞ!
x-session-manager
/usr/bin/startlxde-pi がデフォルトだが、/usr/bin/openbox-sessionに変更した。
これでもうまくいかない
lxsessionにしたらどうだろう?
だめだな・・
raspi-configでbootモードを再設定してみる。(これは何をやっているのだろう?
lightdmというのを設定するのが正攻法のようだ。
今まではlightdmを起動しないようにしていた気がする・・
いやlightdmはそのままでよくてlxsessionをどうにかすれば良さそう?
~/.config/lxsession/LXDE/autostart
に書いてみたがどうか・・?
nodeのサーバは起動しようとしているがportがかぶっていて起動しないなどと言っている・・
x-session-managerをlxsessionにして~/.config/lxsession/LXDE/autostartにそれっぽいことを書いたら動いたぞ
x-session-managerはlxsession
x-window-managerはopenbox
にしておけば良さそう。
スタートアップスクリプトは
~/.config/lxsession/LXDE/autostart
- {x} x-session-managerをansibleで変更する
- {x} ~/.config/lxsession/LXDE/autostart の変更をansibleに変更する
- {x} kickするシェルスクリプトをansibleで配置する
crontab
> code
45 12 * * * /home/pi/google-home/sleep-time.sh
15 19 * * * /home/pi/google-home/sleep-time.sh
0 0 * * * /home/pi/web-signage/daily.sh
<<
> code
0 5 * * * /home/pi/mirror/mirror.sh >> /home/pi/mirror/mirror.log 2>&1
<<
秘密情報を外だしする(ansible)
- {x} fstabの修正内容
ansible管理外ファイル
- google-home
-- google-home-notifier
--- 元ネタをcloneして少し変更している
-- run-server.sh
--- 起動させつづける
-- sleep-time.sh
--- curlするだけ
- mirror
-- mirror.sh
--- slackのクレデンシャル
-- mirror-success.json
-- mirror-error.json
-- mirror.log
- slack
-- post.sh
- web-signage
-- daily.sh
--- cronで実行される
-- get.py
--- timetreeから情報を取得する
-- makePhoto.sh
--- 写真一覧を取得する
-- index.html
-- photo.js
--- 生成物
-- schedule.js
--- 生成物
-- token
--- timetreeのtoken クレデンシャル
- クレデンシャルをどこに置くか?
- secrets
-- timetree-token
-- slack-token
- {x} mirror.shがslack-tokenを使うようにする
- {x} get.pyの使うtokenをsecretsに移動させる
デモモード
- TimeTreeのトークンをデモ用のカレンダーに差し換える
- 写真をデモ用に差し換える(ディレクトリを変えるなど?)