仕事が忙しくて、前回作ろうと思ったツールが全く作れていない・・・。今月中に作ろう。
全く関係無いけど流行にのっかって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