はじめに
Metal as a Service MAASは物理サーバをクラウドインスタンスの様に簡単にデプロイ・リリースできるソフトウエアです。MAASサーバはPXEブートで物理サーバを構築・管理します。PXEブートにより、OSインストーラーの起動、自動インストールを実現しています。
一度環境を構築すると以下の様なダッシュボードだけで、物理サーバにOSをインストールできます。PoC環境でありがちな、違う検証に使うためOS再インストールする作業を自動化できます。
本記事では弊社PoC環境での導入例を元に、MAASについて最低限のセットアップとOSインストールに触れていきます。
実施環境
MAASサーバはDHCPを使用するため、物理サーバとL2で接続する必要があります。しかし、PoC環境のラックには新しいサーバしかなく、どれか1台にOSを手動で入れMAASサーバとする必要がありました。
PoC用のサーバに他のソフトウエアは極力入れたくなかったため、MAASサーバは自社内のプライベートクラウドで構築することにしました。自社内のプライベートクラウドでVLANを払い出し、PoC環境ラックと接続しました。
手順
- MAASのインストール
- DHCPの設定
- 物理サーバのPXE設定
- 試運転
- OSのインストール
MAASのインストール
公式ドキュメントを参考にMAASサーバの構築を進めます。
MAASのリポジトリを追加し、aptでインストールを行うだけで構築できます。MAASの設定は構築後のWEB UIで行います。
sudo apt-add-repository ppa:maas/3.3-next
sudo apt update
sudo apt-get -y install maas
WEB UIにアクセスするための管理ユーザを作成します。以下のコマンドを実行すると対話形式でユーザを作成できます。
sudo maas createadmin --username=admin --email=admin@example.com
以下にブラウザでアクセスするとWEB UIが表示されます。
http://MAASサーバ:5240/
ログイン後、登録したユーザの設定画面を開き、SSH鍵を登録します。後程、OSをインストール際はここで登録したSSH鍵でアクセスします。
DHCPの設定
PEXブートを行うために、MAASサーバでDHCP機能を有効にします。WEB UIで設定を行います。
[Subnet]を選択します。
DHCPを有効にするVLAN(PoC環境のVLAN) を選択し、Configure DHCPを選択します。
MAAS provides DHCPを有効にします。
これでMAASサーバのDHCPが有効になり、物理サーバがPXEブートできるようになりました。
物理サーバのPXE設定
PXEブートの設定は各機器のBIOS設定で行うため、それぞれのドキュメントを参照してください。
設定が必要な項目は以下の通りです。
- PXEブートに使用するNICのPXE有効化
- ブート順位でPXEブート(ネットワークブート)を最上位に設定する
PoC環境ではDELLサーバを用いていたため、iDRAC(BMC)上での設定例を以下に掲載します。
試運転
MAASサーバの構築が完了し、物理サーバのPXEブートの設定も完了したため、物理サーバを再起動します。
再起動すると、物理サーバはPXEブートでMAASの試運転OSを起動します。この試運転OSは主に以下の処理を実施します。
- 物理サーバのリソースを分析
- CPU、メモリ、ストレージ構成、ネットワークインターフェース情報
- 簡易なテスト
- ストレージやメモリなどのハードウエアテスト
- インターネットへの疎通テスト
- 分析・テスト結果をMAASサーバへ送信
- シャットダウン
試運転が無事完了すると、物理サーバはシャットダウンされ、WEB UIに登録されます。以下の様に、基本的なハードウエア情報を確認することができます。
OSのインストール
登録された物理サーバのページ上部にあるTake ActionボタンからDeployを選択します。OSの選択を行います。この時、NetworkタブでNICに手動でIPを設定することも可能です。この情報はMAASサーバに保存され、OS再インストールを行う際も同じIPで構築できます。
OSインストールが完了するとDeployステータスになり、IPアドレスが表示されます。このIPアドレスにMAAS設定時に登録したSSH鍵を使ってSSHができます。
おわりに
今回は、PoC環境の性質上、OSのインストールが何度も想定されるためMAASを導入しました。設定後はWEB UIからOSをインストール&再インストールでき、PoC検証の効率化ができました。
購入した物理サーバはDell社のiDRACライセンスが有効のため、手間ですがリモートコンソールを利用し遠隔でのOSインストールは可能です。一方で、リモートコンソールを持たないサーバは、モニターとキーボードを刺し現地操作の必要がありますが、MAASを一度設定してしまえばすべて不要になります。よってリモートコンソールの有無に関わらず、MAASを利用しない理由はありません。
本記事では、最低限のセットアップとOSインストールについて触れました。MAASをさらに活用していくため、今後触れていく内容を最後にご紹介します。
MAASコンポーネントの理解
MAASはDHCP、DNS、リポジトリミラーなどを提供しています。これはMAASに限らず、物理サーバを運用する際に必須なライフサーバと呼ばれるものです。よりMAASを活用していく際には提供されている機能の理解が必要です。
自作イメージの作成
今回は公式が提供しているUbuntu22を利用しましたが、VMWare ESXI, Windows, 他のLinuxディストリビューションなどを利用する事もできます。公式のイメージビルダーはUbuntuの有料版ライセンスが必要ですが、Packerなど無料のソフトウエアでも実現できます。
MAAS CLIとAPI
今回はWEBダッシュボードで操作を行いましたが、他にもCLI、APIが提供されています。これにより、OSインストール後の処理まで自動化することが可能です。自社環境に合わせて開発しても良いですが、MAAS開発チームのCanonicalがjujuというソフトウエアも提供しています。
参考
- MAAS | Metal as a Service - https://maas.io/ - Canonical Ltd. - 2023/5/11
- Juju | How to use MAAS with Juju - https://juju.is/docs/olm/maas - Canonical Ltd. - 2023/5/11