VPS全盛のこの時代に、自宅にオンプレプライベートクラウド環境を構築したメモ。
サーバーを導入する際、トライアルアンドエラーの末に不安定になり、何度もOSのインストールやり直し作業が発生する。また、複数のサーバーでクラスターを組むために手作業していると、同じコマンドを延々サーバー台数分打ち込まないといけない。
MAASでサーバーを管理すれば、OSのインストールはデプロイするだけ。デプロイしたサーバーはリリースすればまたデプロイ可能な状態に初期化され、再度デプロイするだけで再インストールが終わる。MAASでデプロイできるOSはUbuntu、CentOSに限られる(自分でカスタムイメージも作成できるらしいが未確認)が、Debian党の私も、試用してこの便利さは手放せないのでサーバーOSはUbuntu23.10に移行することにした。
手作業で同じコマンドを延々と打ち込むことに関しては、jujuとか逃げ道があるのかもしれないが、今回はスクリプト化で回避した。
複数のサーバーでクラスターを組むために、安価なハードウェアと、これらをMAASで管理するためにRaspberryPi 4Bを以下の通り用意した。
- RaspberryPi 4B 4GB(debian12インストール済み、WiFi設定済み、SSHログイン許可済み)
- GMKtec nucbox10 AMD Ryzen 7 5800U 4.40GHz DDR4 16GB M.2 512GB SSD+SATA 128GB SSDx4
- Fujitsu TX1320 M3 Xeon E3-1240 v6 3.70GHz ECC DDR4 2400MHz 64GB SATA 128GB SSDx4
- Fujitsu TX1320 M3 Xeon E3-1220 v6 3.00GHz ECC DDR4 2133MHz 32GB SATA 128GB SSDx4
- NETGEAR GS116Ev2
rpi@raspberrypi:~$sudo snap install snapd
rpi@raspberrypi:~$sudo snap refresh
rpi@raspberrypi:~$sudo snap install maas --channel=3.3MAASをRaspberryPiにインストールすれば、WebUIからデプロイが可能となる。MAASがDHCPサーバーになるようにルーターのDHCPサーバーを停止し、MAASのDHCPを設定し、サーバー機のPXEブートを有効化して起動すると、MAASにハードウェアが検出される。Commissionするとサーバーの詳細なハードウェア情報を取得してくるので、その後ReadyとなったサーバーにDeployするとOSがインストールされる。サーバーに固定IPを振る場合はデプロイ前にネットワークの設定を済ませておく。詳細は他稿に譲る。
Deployしたサーバーは、MAASサーバーのRaspberryPiからのみ、かつSSHでのみログイン可能。具体的に以下のコマンドで接続できる(公開鍵認証のみ)。接続したらとりあえずrootのパスワードを変更しておく。
rpi@raspberrypi:~$ssh ubuntu@10.0.0.2 (@以下はサーバーホスト名またはサーバーIP)
ubuntu@10.0.0.2:~$sudo passwd
New password:
Retype password:同じ要領ですべてのサーバーにログインし、各サーバー(3台とも)で次のコマンドを実行し、MicroCloud環境をインストールする(cloud-initで自動化できそう)。
ubuntu@10.0.0.2:~$sudo snap refresh
ubuntu@10.0.0.2:~$sudo snap install microcloud microovn microceph (lxdは最初からインストールされている)どこかのサーバー1台で以下のコマンドを実行し、MicroCloudを初期化し、LXD+MicroOVN+MicroCephをセットアップする。
ubuntu@10.0.0.2:~$sudo microcloud initこの時、cephのOSDとしてSSDを選択することをお忘れずに。