連載
» 2014年07月17日 18時00分 公開

PXE+Kickstartで動かすVirtualBox+CentOS環境自動構築サーバーの作り方新人インフラ技術者のためのサーバー構築/運用自動化入門(2)(2/5 ページ)

[菅原亮, 鈴木繁成,NTT OSSセンタ]

DHCPサーバー設定、その前に…

 DHCPサーバーを設定する前に確認すべき項目を以下に挙げます。主に物理マシンに対して自動構築する場合とネットワークに関するものです。本連載で使うVirtualBox特有の注意点については後述します。

  • 自動構築サーバーで構築するサーバー側は、前回話したネットワークブートの規格であるPXEに対応していなくてはならない。最近のPCサーバー製品であればまず対応している
  • 最近のPCサーバー製品には複数のネットワークインターフェースが搭載されているケースが多くなっている。複数のネットワークインターフェースが搭載されていても、PXEに対応しているインターフェースは特定の1つだけというケースがありますので、事前に確認する
  • PXE関連のBIOS設定などを確認。標準ではOFFになっているケースが多い。以下は確認ポイント
    • PXEの有効/無効の設定
      複数のネットワークインターフェースがある場合は、どれがPXE対応のインターフェースかも確認
    • ブート順序でPXEが入っているかどうか
      ブート対象デバイスの中にPXEが入っているか確認。ブート順序はHDDの次辺りがよい。もしHDDにすでに何かしらのOSが入っていてブートしてしまう場合は、ブート時にブートデバイスの選択をするか、PXEのブート順序を最優先にしてOSインストール直後の再起動時にブート順序をHDDが最優先になるよう変更するなどの対処が必要。ブート時にブートデバイスを選択する方法はお使いの製品のマニュアルを確認
  • DHCPサーバーの設定で使うので、構築するサーバーのPXEで使うネットワークインターフェースのMACアドレスを控えておく。分からない場合は、この後ネットワークインターフェースのMACアドレスが分かる方法を紹介するので、この確認は飛ばす
  • 検証用の機器が接続しているネットワークセグメントで、他のDHCPサーバーが稼働していないか確認。同じネットワークセグメントに複数のDHCPサーバーを配置するとトラブルの元になる。そのため、検証環境は必ず独立したネットワークやホストオンリーアダプターを利用するなど、他の利用者に迷惑を掛けないよう気を付けること。また自宅環境などはルーターが設置されていてDHCPサーバーが稼働しているケースも多いが、同じくトラブルの元なので必ずルーターのDHCPサーバーを停止するか、独立したネットワークを用意

 以上の確認が終わりましたら、DHCPサーバーを設定しましょう。

DHCPサーバーの設定

 DHCPサーバーの設定ファイル(/etc/dhcp/dhcpd.conf)は初期状態だとコメント行しかありませんので、必要な設定を追記しましょう。以下の例では接続するネットワークのネットワークアドレスを192.168.1.0/24として記載していますので、環境に合わせて読み替えてください。

subnet 192.168.1.0 netmask 255.255.255.0
{
        default-lease-time     21600;
        max-lease-time          43200;
        option routers          192.168.1.1;
        option subnet-mask     255.255.255.0;
        range                     192.168.1.128 192.168.1.191;
}

 設定の意味は以下の通りです。

subnet

 subnetの後にネットワークアドレス、netmaskの後にネットマスクを記述します。

default-lease-time

 IPアドレスの標準貸し出し時間です。DHCPクライアントが特に何もしなければ、この時間がIPアドレスの貸し出し時間になります。秒で指定します。例では6時間に設定しています。行末はセミコロン(;)が必要です。

max-lease-time

 IPアドレスの最大貸し出し時間です。DHCPクライアントからのIPアドレス貸し出し時間の延長要求があっても、この時間を超えることはできません。秒で指定します。例では、12時間に設定しています。行末はセミコロン(;)が必要です。

option routers

 デフォルトゲートウェイのアドレスを指定します。例では192.168.1.1に設定しています。行末はセミコロン(;)が必要です。

option subnet-mask

 サブネットマスクを指定します。例では255.255.255.0に設定しています。行末はセミコロン(;)が必要です。

range

 貸し出すIPアドレスのレンジを指定します。この後に説明するhostスコープでMACアドレスとIPアドレスが対応付けされていないDHCPクライアントには、ここで指定したレンジからIPアドレスが貸し出されます。例では192.168.1.128から192.168.1.191までのIPアドレスを貸し出し用として設定しています。

 もしMACアドレスと対応付けたIPアドレスのみの貸し出しでしたら、行頭に#を入れてコメントアウトしても構いません。行末はセミコロン(;)が必要です。

自動構築する対象のサーバーに対する個別の設定

 次は自動構築する対象のサーバーに対する個別の設定です。以下の例のように必要な設定を追記します。例は1台分の記述ですので、複数台ある場合は台数分記述します。

 MACアドレスが分からない場合は、後半で確認方法を紹介しますので、本章は後回しにしてMACアドレスが確認できた後に設定しても構いません。

host client01
{
        hardware ethernet      00:01:02:a1:a2:a3;
        fixed-address           192.168.1.11;
        filename                 "/pxeboot_cent65/pxelinux.0";
        next-server             192.168.1.2;
}

 設定の意味は以下の通りです。

host

 hostの後に識別可能な名称を記述します。

hardware ethernet

 MACアドレスを記述します。例では00:01:02:a1:a2:a3(架空です)に設定しています。行末はセミコロン(;)が必要です。

fixed-address

 hardware ethernetに設定したMACアドレスに対応するIPアドレスを記述します。例では192.168.1.11に設定しています。行末はセミコロン(;)が必要です。

filename

 TFTPサーバーにあるブートローダーを指定します。TFTPサーバーのルートディレクトリ(/var/lib/TFTPboot/)を起点としてフルパスで指定します。詳細はTFTPの設定で説明します。行末はセミコロン(;)が必要です。

next-server

 ブートローダーを取得するTFTPサーバーのIPアドレスを指定します。本連載では自動構築サーバー1台で全て賄いますので、自動構築サーバー自身のIPアドレスを記述します。例では192.168.1.2に設定しています。行末はセミコロン(;)が必要です。

DHCPサーバーのテストと実行

 ここまで設定できましたら、テストをしましょう。以下のコマンドを実行します。

# service dhcpd configtest
Syntax: OK

 もしエラーがある場合は、エラー内容が表示されますので修正してください。以下の例では15行目にセミコロンがない個所があると出ています。実際は周辺の行に問題があることも多いので、エラー行の周辺も含めてチェックしましょう。

# service dhcpd configtest
 
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
/etc/dhcp/dhcpd.conf line 15: semicolon expected.
host
 ^
Configuration file errors encountered -- exiting
 
This version of ISC DHCP is based on the release available
on ftp.isc.org.  Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.
 
Please report for this software via the CentOS Bugs Database:
    http://bugs.centos.org/
 
exiting.

 設定に問題がないことを確認しましたら、以下のコマンドを実行してDHCPサーバーを起動します。

# service dhcpd start
dhcpd を起動中:                                            [  OK  ]

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。