| 2-1.Automatic install of LINUX by Kickstart 大量にLinuxを導入する場合、手入力の手間は非常に時間がかかり間違いも起こりやすくなります。そこで、RedHatLinuxの自動導入機能(Kickstart)とPXEサーバによるネットブート導入を組み合わせて全てを自動化してしまいましょう。 今回はRedHat9をPXEでネットブートしてKickstartで自動導入したときの備忘録です。 なお使用したマシンはThinkPad X20です。 @ サーバの構成確認 1.で構築したPXEサーバでtftpサーバのみ使用している場合はマルチキャスト対応にするためmtftpを構成します。 mtftpファイルのサンプルは補足1.を参照 また、/etc/servicesにポート定義がされているか確認する。 必要な追加ポート pxe 67/udp tftp 69/udp mtftp 1759/udp pxe 4011/udp 稼動するサーバは以下のとおり(構成を参照すると画面が切替ります。参照後2−1へ戻ってください) PXEサーバ ・・・・・・・・・・・・構成はここを参照 dhcpサーバ・・・・・・・・・・・・構成はここを参照 tftpサーバ/mtftpサーバ ・・・・・構成はここを参照 nfsサーバ ・・・・・・・・・・・・構成はここを参照 A dhcpd.confの変更 dhcpサーバでkickstart用のファイルを指定します。 dhcpd.conf自動導入用サンプルは補足4.を参照 B 自動化の為のKickStart構成ファイル作成 作成方法 一番確実なのはRedHat9が導入された環境で作成することです。 ks.cfgファイル(全て導入)のサンプルは補足5.を参照 rootのパスワードなど一部抜けていますのでそこで入力待ちになると思います。 C PXEパッケージの改造 RedHatLinuxで提供しているPXEはサーバ接続時に「F8」を押しその後、メニューで導入の選択そしてKernelパラメータの入力と続きます。 Kernelパラメータを選択しないとコンソールがttyになってしまい画面に導入状況が出てこないのでここを改造してしまいましょう!! 具体的にはパラメータの選択をしない(5秒間待つ)とKickStartファイルを読込み今見ているコンソールで導入状況を表示するようにします。 今回、改造のついでにKickStartを格納するディレクトリやサンプルのファイルも組み込んでしまいます。 今回作成したPXE改造版RPMパッケージはここからDownloadしてください。 改造版ソースファイルが欲しい方はここからどうぞ 導入パッケージ名:PXE-0.1-33.2.i386.rpm(今回のサーバはRH8ベースの為、RH8に付属のPXEを改造した。RH73やRH9でRPMが欲しい方はメールください。) 導入されるファイル一覧(赤字が追加、変更したファイル) /etc/mtftpd.conf /etc/pxe.conf /etc/rc.d/init.d/pxe /tftpboot/X86PC/UNDI/BStrap /tftpboot/X86PC/UNDI/BStrap/bstrap.0 /tftpboot/X86PC/UNDI/KickStart /tftpboot/X86PC/UNDI/KickStart/ks.cfg.sample /tftpboot/X86PC/UNDI/linux-install /tftpboot/X86PC/UNDI/linux-install/linux.0 /usr/lib/libApiTestOpts.so /usr/lib/libApiTestOpts.so.1.0 /usr/lib/libBstrapOpts.so /usr/lib/libBstrapOpts.so.1.0 /usr/lib/libpxeParser.so /usr/lib/libpxeParser.so.1.0 /usr/lib/libpxeTester.so /usr/lib/libpxeTester.so.1.0 /usr/lib/libpxelib.so /usr/lib/libpxelib.so.1.0 /usr/sbin/in.mtftpd /usr/sbin/pxe /usr/share/doc/pxe-0.1 /usr/share/doc/pxe-0.1/README /usr/share/doc/pxe-0.1/license 改造版RPMの導入方法: $rpm -Uvh PXE-0.1-33.2.i386.rpm 削除方法: $rpm -e PXE-0.1-33.2.i386.rpm D 改造版ブートファイルの置換え linux-RH90のrh90.0ファイルを置換える。 $cd /tftpboot/X86PC/UNDI $cp -p linux-install/linux.0 linux-RH90/rh90.0 E ks.cfgの作成 /tftpboot/X86PC/UNDI/KickStartへks.cfgを置く サンプルを使う場合はks.cfg.sampleをリネームしてks.cfgにする。 F PXEサーバとdhcpサーバの再起動 /etc/rc.d/init.d/pxe restart または /etc/init.d/pxe restart /etc/rc.d/init.d/dhcp restart または /etc/init.d/dhcp restart G ネットブート対象マシンを起動しPXEを使ってLinuxの導入 大まかな起動手順は以下のとおり 1.PXEクライアントの起動 2.「Press F8 to view menu ... (10)」で「F8」を押す 3.「RedHatLinux 9.0 Install」を選択する 4.「Press any key to enter kernel parameters...(5)」で5秒待つ(以下自動) 5.Kernel/Initrdが読込まれ導入が始まる。 6.ks.cfgが正しく構成されていれば後は待つだけ 以上でKickstartによるLinux自動導入は終わりです。 これに関してはいろいろ課題が残っているので現在も研究中です。 課題の一例: ・F8を押したり導入選択をせず全自動にする。・・・解決しました→ここを見てね! ・本当に大量導入したときに耐えられる仕様か? ・mtftpは不安定と聞くがどうか? などなどです。 |