バックエンドがS3で、容量を気にせず無限に保存できるファイルサーバーが欲しかったので、ラズパイで作ってみました。
とはいえ、ラズパイを起動してからいちいち設定をするのは面倒なので、Packerを使ってラズパイOSイメージを自動生成できるようにしました。
構成はこんな感じ
※ Cassys(Cloud Attach Storage System) というのがこのツールの名前です。
ソースコードはこちら。
あとは使い方の解説を書いておきます。気が向いたら使ってみてください。
■ 使い方
1.前準備
# dockerのインストール
dockerをインストールしてください。
ログインユーザーからdockerコマンドを操作できるようにします。
# ログインユーザーをdockerグループに追加します。
LOGIN_USER=$(whoami)
sudo usermod -aG docker $LOGIN_USER
# このコマンドの実行に成功したら一度ログアウトします。
exit
# 再度ログインしてdockerコマンドを実行してみましょう
docker ps
# S3バケットとIAMユーザーの作成
- バックエンドとなるs3バケットを作成します。
-
AmazonS3FullAccess
ポリシーを持つIAMユーザーを作成します。 - 作成したIAMユーザーでアクセスキーを発行します。
# リポジトリのクローン
git clone https://github.com/ng3rdstmadgke/cassys.git
cd cassys
2. 設定ファイルの準備
ラズベリーパイイメージの生成に必要な設定ファイルを用意します。
# 設定ファイルをコピー
cp setting/sample.yml setting/my-setting.yml
# 設定ファイルの編集
vim setting/my-setting.yml
setting/my-setting.yml
---
mnt_bucket: "MY_BUCKET_NAME" # マウントするS3バケット名
aws_credential: # IAMユーザーのアクセスキー
aws_accesskey_id: "xxxxxxxxxxxxxxxxxxxx"
aws_secret_accesskey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
smb: # sambaサーバの設定
user: "cassys" # sambaサーバに接続するユーザ名(任意)
password: "xxxxxxxx" # sambaサーバに接続するスワード(任意)
dhcpcd:
ip: "192.168.50.110/24" # ラズベリーパイのIPアドレス(任意)
router_ip: "192.168.50.1" # ラズベリーパイが参加するネットワークのルーターのIPアドレス
3. イメージ生成
ラズベリーパイイメージを生成します。
OSは64bit, 32bitから選択できます。
# 64bitOSのイメージ
# イメージ生成
# 30分程かかります
./bin/build.sh arm64 setting/my-setting.yml
# 出来上がったイメージ
ls .build/output-arm-image/arm64_cassys.img.xz
# 32bitOSのイメージ
# イメージ生成
# 30分程かかります
./bin/build.sh armhf setting/my-setting.yml
# 完成したイメージ
ls .build/output-arm-image/armhf_cassys.img.xz
4. SDカードにイメージを書き込む
イメージは Raspberry Pi Imager
を利用して書き込みます。
# デバイスの選択
利用するラズベリーパイを指定します。
# OSの選択
OSを選択します。
「Use custom」をクリックして、先程生成したイメージを選択します。
# ストレージの選択
イメージを書き込むSDカードを選択します。
すべての項目を選択し終わったら「次へ」をクリック
# OSのカスタム設定
ラズパイOSの初期設定を行います。
- ホスト名
任意のホスト名を指定します。 - ユーザー名とパスワードの設定
ラズベリーパイにログインするための任意のユーザー名とパスワードを指定します。 - Wi-Fiの設定
ラズベリーパイが接続するWi-Fiを指定します。 - ロケールの設定
タイムゾーン: 日本にいるならAsia/Tokyo
を設定します。
キーボードレイアウト: jis配列を利用しているならjp
を指定します。
設定を保存したら 「はい」を選択します。
すべての設定が完了したら書き込みを行います。
イメージの書き込みが終わったら、SDカードをラズパイに挿入し、電源を接続しましょう。
※ ラズパイの初回起動には5 ~ 10分ほどかかります。
5. 接続
Finder (windowsの場合はexplorer) を開いて、「ホスト名に設定した名前」をクリックし、「別名で接続」をクリックします。
setting/my-setting.yml
の smb.user
smb.password
に設定した情報を入力し、「接続」をクリックします。
share
をクリックすると、S3バケット名が表示されます。