oranie's blog

旧:iをgに変えると・・・なんだっけ・・・

サーバ構築メモ

仕事が忙しくて、前回作ろうと思ったツールが全く作れていない・・・。今月中に作ろう。

全く関係無いけど流行にのっかってPXEブート+ネットワークインストール+キックスタートで自動化をやってみた。
やった事は、

http://d.hatena.ne.jp/stanaka/20070728/1185605498
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/710pxeserver.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/711pxeinst.html
http://www.cafechantant.com/blog/2007/08/02/%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E6%A7%8B%E7%AF%89%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B9%E3%83%86%E3%83%83%E3%83%97-%EF%BC%88%E3%81%9D%E3%81%AE3/

そのまんま。

以下はやった時のメモ。
PXEブート+キックスタート設定方法

やる事
インストール対象サーバ側
・インストール対象のサーバがPXEブートに対応しているか確認
・対応していればBIOS設定でブート優先順位をネットワークにする
・もしくは、インストールする時にネットワークブートを選択

PXE+ネットワークインストール+キックスタートサーバ側
・キックスタート設定ファイルを作成して、今回の例だとhttpでアクセス出来る場所に置く
・http、tftp、dhcpをインストール
dhcpサーバの設定を以下の様に設定
(192.168.0.0/24のネットワークで、192.168.255.128だけ払い出す)
vi /etc/dhcpd.conf

----------------------------------------------------------------------------------------------------
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

        option routers                  192.168.0.254;
        option subnet-mask              255.255.255.0;
        option domain-name              "linux-boot.com";
        option domain-name-servers      192.168.255.15;

        option time-offset              -18000; # Eastern Standard Time

        range dynamic-bootp 192.168.0.128;
        default-lease-time 21600;
        max-lease-time 43200;
        filename "/linux-install/pxelinux.0";

}

----------------------------------------------------------------------------------------------------

NICが2枚以上ある場合、dhcpを払い出すNICを指定する必要があるので
vi /etc/sysconfig/dhcpd
を以下の様に書き換え

----------------------------------------------------------------------------------------------------

# Command line options here
DHCPDARGS=eth1
----------------------------------------------------------------------------------------------------

apacheの設定に以下の設定を追記
(任意のディレクトリにhttp://でアクセス出来る様に。今回は/home/sambaにアクセス出来るように。新しいイメージとかをsamba経由で置いたりする為。)

----------------------------------------------------------------------------------------------------

Alias   /Cent5 "/home/samba"
<Directory /home/samba>
    Options MultiViews Indexes FollowSymLinks
    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/24 192.168.255.0/24 127.0.0.1
</Directory>

----------------------------------------------------------------------------------------------------

上記の設定を行うと、
http://192.168.0.254/Cent5/
で/home/samba/以下にアクセス出来る。

・インストールするOSのイメージをマウントかマウントしたファイルをhttpでアクセス出来る場所にコピー
今回の例だと/home/samba/以下に全部コピー
isoイメージをマウントする方法としては、
mount -t iso9660 -o loop ./CentOS-5.0-i386-bin-DVD.iso /mnt/iso
で一度マウントしてからコピーした。

・マウントしたイメージの中から
/images/pxeboot/のファイルを
/tftpboot/linux-install/
にコピーする

・PXEブート時に読み込む設定ファイル
vi /tftpboot/linux-install/pxelinux.cfg/default
を以下の様に設定

----------------------------------------------------------------------------------------------------
default Cent5

label Cent5
kernel vmlinuz
append ks=http://192.168.0.254/Cent5/ks.cfg ksdevice=eth1 load initrd=initrd.img devfs=nomount
----------------------------------------------------------------------------------------------------

上記の設定で、PXEブート後http://192.168.0.254/Cent5/ks.cfgのキックスタート設定ファイルを読み込む
キックスタート設定ファイル内にインストールイメージの場所をhttp://192.168.0.254/Cent5/に指定しているので
これで全部終了。後はインストールするサーバとPXE+キックスタートサーバを同じネットワークに繋ぎ、
httpd、dhcpdを起動してインストール対象サーバの電源を入れればインストール完了。

ただ、Cent5のキックスタート設定ファイル作成ツールを使用してやった時に、必ず日本語の文字化けがしていた。
それと、「互換アーキテクチャのサポート」パッケージを入れようとしても
「compat-arch-supportグループはうんたらかんたら」でインストール中に一度止まってしまう。
原因を探ってみると、文字化けはキックスタート設定ファイルを作成する時に、デフォルトの言語は日本語にしたがサポート言語ではEnglishしか選択しなかったから?
サポート言語にJapaneseを追加し、念のためks.cfgを

#System  language
lang ja_JP
#Language modules to install
langsupport en_US en_US en ja_JP ja --default=ja_JP

だったのを

#System  language
lang ja_JP.UTF-8
#Language modules to install
langsupport --default=ja_JP.UTF-8 en_US.UTF-8 ja_JP.UTF-8

に設定し

#Package install information
%packages

部分に

@ japanese-support

を追加した。あと、互換性アーキテクチャのサポートパッケージはとりあえず入れないようにした。すると文字化けする事無くエラーも出ずインストール完了。
確かに、これは便利だ。ただ、開発環境ではPXEブート対応のサーバが少ないのが残念・・・。
せっかく便利になったと思ったのに。あまりOS入れ替えとかしないサーバでしか使えないとは・・・。まあ、ネットワークインストールが出来るだけ良しとしよう。
あと、狙い通りのパッケージだけを入れるのがまだ良く分からない。キックスタート設定ファイル作成ツールではグループごとの設定しか出来ないし。あと出来れば最小構成とパッケージすべてを初めから選択出来るようにしておいて欲しい・・・。

メモで今回作ったks.cfgファイルの中身

#Generated by Kickstart Configurator
#platform=x86, AMD64, 又は Intel EM64T

#System  language
lang ja_JP.UTF-8
#Language modules to install
langsupport --default=ja_JP.UTF-8 en_US.UTF-8 ja_JP.UTF-8
#System keyboard
keyboard jp106
#System mouse
mouse
#Sytem timezone
timezone --utc Asia/Tokyo
#Root password
rootpw --iscrypted $1$0hVI4r6L$GZqp0r11d/1SrPpcp65AO/
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use Web installation
url --url http://192.168.0.254/Cent5
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part swap --size 1024
part / --fstype ext3 --size 20000
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
network --bootproto=dhcp --device=eth1
#Firewall configuration
firewall --disabled
#XWindows configuration information
xconfig --depth=32 --resolution=1024x768 --defaultdesktop=GNOME --startxonboot
#Run the Setup Agent on first boot
firstboot --enable
#Package install information
%packages
@ admin-tools
@ editors
@ japanese-support
@ text-internet
@ gnome-desktop
@ smb-server
@ base-x
@ web-server
@ server-cfg
%post