Raspberry PiのOSをBusterからBullseyeにアップデートしました。
正確にはアップデートじゃなくて新規インストールをしたので、今までの環境もイチから作り直し。
大した設定をしてないので、イチから作り直し。
Docker上で動いていたHomebridgeもPortainerもバックアップ取っておいた。
NASとしては「OpenMediaValut」を使っていたんだけど、
別にそこまで高機能じゃなくていいから、単純にファイル共有の機能だけ使えばいいや、
ってことで、Docker上にSambaを構築しました。
MacbookのバックアップにTimeMachineも使っていたので、
TimeMachineにも対応させた。
前提
以下は実施済みであることとする。
- Raspberry Pi OSの最新版(bullseye)をインストール済み
- DockerおよびDocker Composeの最新版をそれぞれインストール済み
- 共有フォルダ用のストレージはext4でフォーマットおよびマウント済み
Dockerのインストール手順は以下を参照。
Install Docker Engine on Debian
Instructions for installing Docker Engine on Debian
Docker Composeは以下。
公式が一番わかりやすいw
Portainerのインストール
これは任意。
コンテナの管理をWebGUIで実施したい人向け。
以下のコマンドを実行するだけ。
docker volume create portainer_data docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
https接続したい場合はポート番号"9000"を"9443"に変えればOK。
証明書を用意するのが面倒だけど。
複数のホストを一元管理するにはPortainerを使うとスゲー便利な気がするので、
そのやり方はまた今度別記事にしようかな。
Sambaコンテナのインストール
ようやく本題。
DockerでのSambaの公式イメージは存在しないようなので、
一番人気のある"dperson/samba"のイメージを使わせてもらう。
docker-compose.ymlに以下の記述をする。
version: "3"
services:
samba:
container_name: smb
image: dperson/samba
restart: always
volumes:
- /mnt/timemachine:/timemachine:z
- /mnt/data:/data:z
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
network_mode: host
tmpfs:
- /tmp
environment:
- TZ=Asia/Tokyo
stdin_open: true
tty: true
command: >
-w "WORKGROUP"
-S
-u "<ユーザー名>;<パスワード>"
-s "data;/data;no;no;no;user"
-s "TimeMachine;/timemachine;no;no;no;user"
-p
-g "server string = dockerized CIFS SMB server"
-g "ea support = yes"
-g "fruit:advertise_fullsync = true"
-g "durable handles = yes"
-g "kernel oplocks = no"
-g "kernel share modes = no"
-g "posix locking = no"
-g "inherit acls = yes"
"/mnt/Timemachine"がTimeMachine領域、
"/mnt/data"が共有フォルダ領域。
あとはそれぞれの共有フォルダにアクセスするユーザーおよびパスワードを"adduser"コマンドで作成しておく。
オプションは作者のgithubのページ見たら分かるかとw
-gで各パラメータを設定するのが肝。
あとは、このコンテナイメージを起動するすればOK。
共有フォルダにアクセスしたい別PCから
¥¥<IPアドレス>¥TimeMachine
とアクセスすれば、ユーザー名とパスワードを入力すれば共有フォルダが見えるはず。
他にもmDNS(=avahi=Bonjour)の設定も必要なんだけど、
Raspberry Pi OSではデフォルトで有効になっており、特に設定は不要。
MacでTimeMachine設定
実際にMacから共有フォルダに対してTimeMachineの設定を行ってみる。
TimeMachineの設定画面からディスクを選択すると、
共有フォルダが見えるはず。
見えない場合は、Command+Kキーで共有フォルダに接続してください。
その後、ユーザー名とパスワードを聞かれるので先ほどの情報を入力する。
ゲストアクセス許可にするならゲストでもいいかと。
あとは自動的にバックアップを取ってくれる。
ちなみにBonjourにも対応しているので、<ホスト名.local>でアクセスも可能。
そもそも、そう簡単に壊れないのとバックアップからリカバリする機会はあまり無いっていう気もするが、
せっかくNASを導入したのだから、バックアップできるもんはやっておけば精神的にも安心。
あくまでただのSamba機能だけ
Dockerを使う最大のメリットはホストに余計なアプリをインストールする必要がない、ということだと思う。
あとはホストOSに依存しない。
あれやこれやとアプリをホストOSに直接インストールすると、
要らなくなった際のアンインストール時にゴミが残ったりするので
dockerであれば気兼ねなく入れたり消したりが自由にできる。
話が少し逸れたけど、今回導入したのはあくまで"ファイル共有"機能のみ。
OpenMediaValutだと、S.M.A.R.T機能があったり、iptablesをコントロールできたり、
拡張プラグインでいろいろできたりするんだけど、
それらは別途追加対応が必要なのでご注意。
そういうのもdockerで立てりゃいいだけの話ですが。






0 件のコメント:
コメントを投稿