2012年9月28日金曜日

サーバの環境構築自動化を考える vol.3: KickStart ~ TFTP 構築ほか

こんにちは、OSSテクノロジーセンターの原です。

前回は環境構築の前段として、DNS(BIND) の構築を行いました。

3回目である今回は、TFTP や yum repos など周辺の環境を一気に整えてしまいましょう。

前準備として、RHEL6 (あるいは CentOS6 や ScientificLinux6 などの互換 OS) の DVD メディアや、iso イメージを用意し、適当なディレクトリにマウントしておきます。

※ 今回の環境は RHEL6.3 x86_64 を前提としています。

次にクライアントにブートローダ pxelinux.0 を提供するための TFTP サーバと、元となる syslinux を導入します。

# yum install -y tftp-server syslinux
/etc/xinetd.d/tftp
service tftp
{
    disable         = no
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -v -s /var/lib/tftpboot
    per_source      = 11
    cps             = 100 2
    flags           = IPv4
}
"disable = yes" の部分を "no" に変更、server_args-s に公開ディレクトリを指定しています。 なお -v を付けると、/var/log/messages に詳細が出力されるようになります。

設定が完了したら、サービスを起動させましょう。

# chkconfig xinetd on
# /etc/init.d/xinetd start

次に syslinux の pxelinux.0 を配置します。

# mkdir -p /var/lib/tftpboot/pxeboot
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxeboot

インストールイメージのブートイメージを TFTP にコピーします。

# cp /path/to/dir/images/pxeboot/vmlinuz /var/lib/tftpboot/pxeboot
# cp /path/to/dir/images/pxeboot/initrd.img /var/lib/tftpboot/pxeboot

ここまでできたら、次は PXE Boot 用の設定ファイル群を作成していきます。

# mkdir -p /var/lib/tftpboot/pxeboot/pxelinux.cfg

まず、pxelinux.cfg という名前のディレクトリを作成し、そこに以下の内容で default というファイルを作成します。

/var/lib/tftpboot/pxeboot/pxelinux.cfg/default
default 1

label 1
kernel vmlinuz
append ksdevice=eth0 ks=http://192.168.100.1/ks.cfg load initrd=initrd.img devfs=nomount noipv6

これは最も基本的な default ファイルの構成です。

PXE Boot した際に、この最終行 ks で KickStart のレシピファイルが読み込まれ、それにそれって OS が自動インストールされます。

ここまで準備が整えば、あとは ks ファイルを作成するだけになるのですが、その前に少しお膳立てをしたいと思います。

具体的には、ks ファイルを公開するための httpd 導入、yum repository の構築です。

httpd の導入は普段通り、yum でインストールを行うのみです。

# yum install -y httpd

次に yum repository の作成です。今回は完全なミラーを作成します。

# yum install -y yum-utils
# cd /var/www/html/yumrepos
# reposync -l -q .
# createrepo /var/www/html/yumrepos/rhel-x86_64-server-6
# (ダウンロードされたリポジトリ分行う)

reposync コマンドは、有効になっているリポジトリからすべての rpm のダウンロードを行うコマンドです。

※ したがってこのコマンドを実行するときは、インターネットに接続できるネットワークにいる必要があります。

createrepo コマンドは rpm が置かれているディレクトリから、yum に必要なメタデータなどを作成するコマンドです。

いかがでしょうか。これでおおかた KickStart 環境構築準備の手順としては完了です

次回は KickStart のレシピファイル ks ファイルの作成方法をご紹介したいと思います。

今回はここまでです。次回もお楽しみに。

0 件のコメント:

コメントを投稿