クイックスタート:5分でMAASラボを構築する
UbuntuのクリーンインストールサーバーでMAASを素早く試したい場合は、以下のコマンドをターミナルに入力してください。これは、顧客へのデモや、本番環境への導入前にテスト環境を迅速に構築する際によく使う方法です。
# システムの更新
sudo apt update && sudo apt upgrade -y
# Snap経由でMAASをインストール - Canonical推奨の迅速でクリーンな方法
sudo snap install maas
# 組み込みDBを使用してMAASを初期化(ラボ/テスト環境専用)
sudo maas init region+rack --database-uri maas-test-db:///
# 管理者アカウントの作成
sudo maas createadmin --username admin --email [email protected] --password mypassword123
完了後、http://<Server-IP>:5240/MAAS にアクセスしてください。作成したアカウントでログインし、まずは成果を確認しましょう。CockpitでUbuntu Serverを管理するのと同様に、Webインターフェースは直感的な操作を提供します。
MAASがあるのに、なぜまだUSBブートで苦労しているのですか?
以前、会社が30台のDell R740を導入した際、チーム全員で汗を流しながら作業したことがありました。全員でUSBを差し込み、IPを設定し、一台ずつSSHキーを追加していく。全工程に丸2日はかかり、ミスも発生しやすかったのです。
MAAS (Metal as a Service) は、そのような「苦労」を解決するために生まれました。ベアメタルインフラをAWSのように柔軟なものに変えてくれます。ネットワークケーブルを繋いで電源を入れるだけ。MAASが認識(Discovery)、ハードウェア検査(Commissioning)、OSインストール(Deploy)までをAPI一つで処理し、cloud-initでサーバー構築を完全自動化することを可能にします。
MAASシステムは、主に2つのコンポーネントで構成されています。
- Region Controller: 制御の頭脳であり、データベースとWeb/APIインターフェースを管理します.
- Rack Controller: 拡張された腕の役割を果たし、ラック内のサーバーに対してPXEブートとDHCP割り当てを担当します.
本番環境向けの本格的なセットアップ
本番運用を想定している場合は、maas-test-db を使用しないでください。数百台のノードの負荷に耐えるには、パフォーマンスと定期的なバックアップを確保するために、専用のPostgreSQLを使用する必要があります。
1. 専用PostgreSQLのインストール
sudo apt install -y postgresql
# MAAS専用のユーザーとDBを作成
sudo -u postgres psql -c "CREATE USER "maas" WITH ADMIN OPTION PASSWORD 'your_secure_password';"
sudo -u postgres createdb -O "maas" "maasdb"
# DBが別のサーバーにある場合はポートを開放
echo "host maasdb maas 0/0 md5" | sudo tee -a /etc/postgresql/14/main/pg_hba.conf
2. MAASを実際のデータベースに接続する
デフォルトのデータベースを使う代わりに、先ほど設定したPostgreSQLをMAASに指定します:
sudo maas init region+rack --database-uri "postgres://maas:your_secure_password@localhost/maasdb"
3. ネットワーク設定:DHCP의 競合を避ける
初心者が陥りやすい最も一般的なミスは、子マシンがIPを取得できないことです。私の経験から言えば、DHCPの管理はMAASに任せるべきです。DHCPリレーの設定で一日中悩みたくなければ、ルーターのDHCPをそのまま使おうとしないでください。
- Webインターフェースの Subnets に移動します。
- VLANを選択し、DHCP を有効にします。
- 想定されるサーバー数に対して十分な広さの動的IPレンジ(Dynamic Range)を設定します。
新しいサーバーが起動し、PXEブートが優先されると、MAASからIPを取得します。その後、マシンはRAMに小さなイメージをロードしてCPU、RAM、ディスクの情報をスキャンし、ダッシュボードに New 状態で報告されます。
6ヶ月の運用で経験した「落とし穴」
ハードウェアを扱う作業には常に予期せぬ事態がつきものです。スムーズな運用のための3つのキーポイントを紹介します。
電源管理 (Power Management)
MAASでサーバーをリモートから自動でオン/オフするには、IPMI(DellならiDRAC、HPならiLO)を設定する必要があります。これがないと、デプロイのたびにラックまで走って電源ボタンを押さなければなりません。Apache Guacamoleを使用してサーバーを一元管理する環境においては、この自動化は不可欠です。
ノードの設定画面で、Power type を IPMI に選択します。次に、管理IPとそのマシンの管理カードのアカウント情報を入力します。
コミッショニングスクリプトの活用
OSをインストールする前にディスクの不良セクタをチェックしたいですか? MAASでは、検査段階でカスタムスクリプトを実行できます。私はよく、ここでBIOSファームウェアを自動更新するスクリプトを組み込み、すべてのノードのバージョンを統一しています。
# シンプルなCPU温度チェックスクリプト
#!/bin/bash
sensors | grep "Core 0"
ローカルイメージミラーによる高速化
デフォルトでは、MAASは海外のCanonicalサーバーからイメージを取得します。海底ケーブルが切断された場合、Ubuntu 22.04のデプロイに1時間以上かかることもあります。ローカルミラーを構築しましょう。これにより、デプロイ時間を1台あたり5〜7分に短縮できます。
応用:Packerによるカスタムイメージの最適化
実際、バニラ状態(素の状態)のUbuntuをインストールすることは稀で、通常はCIS Benchmarks準拠のUbuntu Server自動ハードニングなどのセキュリティ対策が求められます。私はよく packer を使って、DockerのインストールやSSHのセキュリティ強化が済んだイメージを事前にビルドします。これをMAASにアップロードすれば、OSインストール直後から「即戦力」のサーバーが手に入ります。
# パッケージ化されたイメージのアップロードコマンド
maas admin boot-resources create name='custom/ubuntu-hardened' \
architecture='amd64/generic' filetype='tgz' \
content@=/path/to/your/image.tar.gz
システム管理者へのメッセージ
MAASは単なるOSインストールツールではありません。これは数百台のUbuntuサーバーを集中管理する真のプライベートクラウドを構築するためのプラットフォームです。Terraformと組み合わせれば、コマンド一つで物理マシン上にKubernetesクラスターを構築することも可能です。
管理するサーバーが10台を超え始めたら、迷わずMAASを導入してください。私が共有したネットワークとIPMIの設定をしっかり守れば、システムはスムーズに稼働し、管理が非常に楽になるはずです。

