MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

MAASで物理サーバのOSデプロイをワンクリック自動化!らくらく検証環境構築

はじめに

こんにちは!マイクロアドでインフラエンジニアをしている大泉です。
今回はオフィスのサーバルームに検証環境を構築する中で、OSのデプロイを簡単に行えるツールが非常に便利だと感じたので、ご紹介します。

リモートでOSを入れる環境を用意しない場合、USBにイメージを入れて手作業でデプロイしたり結構手間がかかります。
1台あたり30分、10台で5時間程度かかります。
さらに何十台も行う場面だと、膨大な時間と手間がかかってしまいます。
それでは、時間と手間を省くためにどうしたか、お話していきます!

OSデプロイの時間と手間を省くツール

実は、構築するサーバになるべく手を加えずにOSデプロイできるツールがあります。
今回はCanonical社のMAAS(metal-as-a-service)を利用しました。

MAASとは

MAASとは、物理サーバの自動プロビジョニングと管理をするツールです。サーバをネットワークに接続するとOSデプロイをしてくれる機能を持ちます。
これでUSBから1台1台OSデプロイを行う手作業を省くことができます!

MAASについてもっと詳しく知りたい方はこちらの記事をご覧ください。

developers.microad.co.jp

実際に使ってみた

検証環境のネットワーク&VLAN構成図

今回は、オフィスのサーバルームにMAASでOSデプロイをできる環境を作りました。
1台の管理用サーバ(MAASをインストールするサーバ)から7台のサーバに対してMAASでOSデプロイできる環境を構築します。
こちらが設計図です。

検証環境の設計図

主に設定をしたのはスイッチと管理用サーバです。設定の概要は以下になります。

スイッチ

  • ポートVLAN
    • VLAN10:管理用サーバのeth0に繋がるVLANで、DHCPでIPアドレスを割り当てるときに利用
    • VLAN20:管理用サーバのIPアドレスを設定したVLANで、インターネットとの通信に利用
    • VLAN30:MAAS管理下のIPMI1につながり、MAASに登録されたサーバを識別するために利用

IPMIについてはこちらの記事で詳しく説明されてます!ぜひご覧ください。

developers.microad.co.jp

VLAN20,30は管理用のVLANなので物理ポート1に接続、VLAN10は大量のMAASデプロイトラフィックが流れるので物理ポート2に接続しています。

  • トランクポート
    • VLAN20,30を集約するポートで、管理用サーバのeth1につながるポート

管理用サーバ

  • VLANインターフェース作成
  • IPアドレス・デフォルトゲートウェイ設定
  • DNSを設定
  • snapを使ってMAASをインストール(管理者作成)

MAASで管理するサーバ

  • IPMIで使用するIPアドレスの設定
  • 起動順序の先頭をネットワークブートに設定する

上記より、OSをデプロイするサーバ(MAASで管理するサーバ)は簡単な設定だけで済みます!

管理用サーバにMAASをインストールすると、http://MAAS管理サーバのIPアドレス:5240 で管理画面にアクセスできます。
あとはGUIから設定をします。
デプロイ時に使用するOSイメージはCONFIGRATION→Imagesから選択できます。

サーバにOSをデプロイしてみる

デプロイは、下記のようにMAASに登録されたサーバのActionsからイメージを選択して行うことが出来ます。 Ready状態でイメージを選択し、Deploy machineを押すだけです!

MAASデプロイ画面
面倒だったOSデプロイ作業がクリックだけで完了しました。OSのイメージを検索してダウンロードする時間も短縮されました!
余談ですが、デプロイしたサーバをロックできます。人為的なミスでサーバをリリースしてしまうリスクを低減できますね。

MAAS環境構築時の落とし穴

前提として、MAASをインストールするサーバとMAASで管理されるサーバは同じネットワークにいる必要があります。
また、MAAS環境構築時には様々な落とし穴があります。
幾つか挙げてみましたので、参考にしていただければ幸いです。

ネットワーク設定の問題と解決案

  1. 既存のDHCPサーバとの競合
    問題: 既存のDHCPサーバがある環境にMAASを構築すると、DHCPサーバが競合する。
    解決案: MAASのDHCPサーバと既存のDHCPサーバでIPアドレスの払い出し範囲を分ける。

  2. セグメント分割環境でのIPアドレス割り当て
    問題: セグメントが分割された環境で、ラックコントローラが1つの場合にIPアドレスが割り当てられない。
    解決案: スイッチ側でDHCP Relayの設定をする。

  3. サブネット設定の忘れ
    問題: サブネットの設定を忘れると、DHCPが有効になっていてもIPアドレスが割り当てられない。
    解決案: DHCPで割り振りたいIPの範囲をCIDRなどで指定する。

  4. ホストのブート順序
    問題: ホストのブート順序でPXEの優先度が下げられていると、ホストがいつまでも登録できない。
    解決案: BIOS画面からブート優先順位にPXEを一番に設定する。

  5. パケットフィルタリング設定
    問題: MAAS管理用サーバのパケットフィルタリング設定の許可漏れにより、MAAS管理サーバまでパケットが届かない。
    解決案: 特にPXE bootは、TFTPを利用しているのでその辺りのポートの許可設定が必要。

これらの問題に遭遇した場合、まずはMAASサーバでtcpdumpなどでパケットの流れを観察するのがおすすめです!

デプロイ後の問題と解決案

問題:初回ログイン時に使用する公開鍵アップロード忘れにより、デプロイ後のサーバにログイン出来なくなる。
解決案:ユーザ設定→SSH keysから初回ログインを行うサーバの公開鍵を登録する。

おわりに

MAASを利用することで、OSデプロイ時間が1台あたり30分から5分程度に短縮できました。さらに、同時に複数台OSをデプロイできるようになりました。そのため、「Deploy machine」を押した後は別の作業に時間を割けるので、作業効率も向上しました!

マイクロアドでは、データセンターでサーバを管理していますが、「簡単な検証の場合、オフィスで終わらせたい!」という思いから今回検証環境を構築しました。 また、検証環境構築では、物理的な配線から普段ほとんど触らないスイッチの設定に苦戦しました。

そのおかげで、ネットワークやサーバに関する知識の理解も深まりました!

また、マイクロアドでは、OSデプロイ後にAnsibleなどを使って、さらにサーバ構築の手間を減らしています!

新卒インフラエンジニア絶賛採用中

マイクロアドでは技術への探究心があり、最新の技術・動向について積極的に学び活かす意欲を持った仲間を募集しています! またインフラエンジニアだけでなく、サーバサイド、機械学習エンジニアなど幅広く募集しています! 気になった方は以下からご応募ください!

recruit.microad.co.jp


  1. サーバやコンピュータのハードウェアをリモートで管理・監視するためのインターフェース