ハードウェアからサーバ・アプリまでワンストップで開発

サーバのハードディスクがクラッシュした時に、Linuxの環境はRaspberry Pi 4に移行させました。

当初はワンポイントリリーフくらいのつもりだったのですが、なかなか使える環境でもあったので常用の環境となりました。

特に大きな不満もなかったのですが、よりパフォーマンスの高いOrange Pi 5が余っています。そこで、常用の環境をこちらにしてみました。

背景

2021年度の決算作業中にサーバが死んでしまいました。

経理データはもちろん、それ以外のありとあらゆるデータがディスクの藻屑となりました。

そのままでは困るので、直後に「とりあえず」ということでAWSで作業環境を作っていたのですが、クラウド環境にSSHだと時々「詰まる」のがストレスだったので、急遽Raspberry Pi 4(8GB)を買って来て使うことにしました。その頃はまだRaspberry Pi 4も廉価に買えましたから(この直後くらいに高騰した)。

USB HDDをつけたりして結構快適に使えていました。この辺のことは、

Cassette Server

に書いています。

これで特に不満もなく、まぁたまにwebpack --watchが重く感じられたりする程度でした。開発用サーバとして使うのですから、そんなものです。

それで特に不満もなかったのですが、最近Orange Pi 5 plusを買いまして、当初は販売するつもりでいたのですがちょっとした事情(忘れた)で手元に置いてあります。

単に置いていてもしょうがないので、SSD(NVMe)を入れて時々動かしていました。AI関係のOrange Pi 5でやったという話はこれを使ったものです。ただ、後から導入したこともあって、「新しいことがあったらやってみる」という扱いでしかありませんでした。

ただまぁ折角パワーのあるもの(CPUはRaspberry Pi(4)の3倍くらいの速度です)だしメモリもあるし(16GB)なので、常用環境をこちらにしてみるかということで移行させました。

作業

既にインストールしてちょぼちょぼ使っていた環境なので、特にやることはありませんが、やったこととしては

  • /homeの引越し
  • ホスト名のつけ直し
  • IPアドレスのつけ直し
  • ssh鍵の引っ越し
  • Samba環境の整備

あたりです。/homeの引っ越しは、まぁ言うまでもないですね。Raspberry Piの環境では/homeはUSB HDDだったので、mountあたりをいじれば済むことでもあったのですが、せっかくSSDが入っているので引っ越しました。特に問題はないはずだったのですが、Raspberry Piをインストールしたのは私、Orange Piをインストールしたのはmayumiだったので、UIDがひっくり返っていたせいで一瞬わけのわからないことが起きました。すぐにわかったんでいいですけど。

ホスト名は元々のOrange Piが持っていたホスト名を捨てて、元々あったRaspberry Piのホスト名を継承させました。これは、Sambaで共有していた時のホスト名を変更するのが面倒臭かったからです。あ、SambaだけじゃなくてVS Codeのリモートも同じです。とにかく「元々のRaspberry Piの環境」をそのまま移したかったわけです。

IPアドレスはDHCPで固定アドレスを振っていたので、ルータ上のDHCPサーバに登録してあるMACアドレスを指定しなおしました。これもホスト名のことと同じ理由です。

sshの鍵はあちこちのホストのsshが鍵認証にしてあったために必要でした。これは(ry

最後のSamba環境の整備がちょっとだけ厄介だったので別にします。

Sambaの環境設定

Raspberry PiのUbuntuはVer 20系が入っていて、Orange PiはVer 22系です。

そのせいかわかりませんが、Sambaの挙動がちょっとだけ違います。Raspberry Piで使っていた/etc/samba/smb.confそのままでは動きません

具体的には、Raspberry Piの場合、

#======================= Global Settings =======================

[global]
unix extensions = no
wide links = yes

## Browsing/Identification ###

だったものが、Orange Piの場合、

#======================= Global Settings =======================

[global]
wide links = yes


## Browsing/Identification ###

でないと動いてくれません。つまり、unix extensions = noが邪魔です。これがあると、なぜかWindowsからの接続を蹴ってしまってました。なぜこういったことになるかは深く追ってませんが、なぜかこれがあるとダメでした。

実のところこのエントリはこの情報を共有するために書いたようなものです。オプションの意味から挙動がつながらないので、なかなか調べるのに苦労しました。

結果

こんな感じで移行させました。

使っている感じでは、特に不都合がありません。実のところ、Orange Pi 5のUbuntuのリポジトリは公式とは異なるものなので、Raspberry Piと比較すると足りないものがあったりします。また、まだ後から追加したリポジトリもまだ入れてないので、この辺は追い追いやって行かないといけませんが、特に目立った不都合は今のところありません。NodeでもPythonでも、今時は「環境」をホームディレクトリに置いてしまいますから、/homeを移行させるだけで後から入れたものが使えて良いですね。

快適になったかと言われれば、それほど重いものを走らせてないので気がつきませんね。CPU 3倍、メモリ2倍の威力はまだわかりません。結局のところ「サーバとして使う」という範囲であれば、どちらも大差はありません。重いことをさせればOrange Piの方が有利になるとは思います。LLMもちゃんと走ってくれますからね。

不満がないかと言われればないわけでもないので、その辺を解消した時にまたエントリ書きます。

(役目を終えたRaspberryPi)

また他のことに使う予定ですけどね。

最近のエントリー

Hieronymusのインボイス番号対応について

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル