PXEブート&KickstartによるOSインストール自動化

OSインストール、手動でやるのめんどくさい!!!こんな画面もうみたくない!!!

というわけでPXEブート&Kickstartで自動化しています。
(ユーザ作成などの初期設定もスクリプト化してそれに組み込んでます)


構築手順はいろんなとこにアップされてるので、実際にどう運用してるのか、を書いてみます。
(手順はいちおうWikiに。KickstartPXEブート&Kickstart


物理サーバインストール

インストール対象サーバをPXEブートします

  • BIOS設定でPXEブートを有効にする
  • 起動メニューでPXEを選択(HPサーバならF12を連打)

こんなプロンプトが出るように設定してます

...
========================
Select kickstart setting
========================
Generics (DHCP)
 1. CentOS-5.4  SAS/SATA
 2. CentOS-5.4  SAS/SATA  DB
 3. CentOS-5.5  SAS/SATA
 4. CentOS-5.5  SAS/SATA  DB
Individuals
 Type hostname

boot:

ここから汎用設定でのインストールと個別設定でのインストールを使い分けてます

汎用設定インストール

メニューに指定された数字を入力する。
(CentOS5.5、SAS、DB用設定ならば4)

boot: 4
...
...
[root@localhost ~]# 

OSインストール後、DHCP設定で起動するのでログインしてホスト名、IPを設定します。
この手順はあんまり使ってません。

個別設定インストール

事前に管理サーバ上で設定追加スクリプトを実行します。

[root@cent bin]# ./add_kscfg.sh test-db03 192.168.1.53 /var/www/html/ks/gen/CentOS5.5_sas.db.cfg

生成されたコンフィグにさらに手を加えることもあります。

この状態でインストール対象サーバをPXE起動し、今度はプロンプトでホスト名を入力します。

boot: test-db03
...
...
[root@test-db03 ~]# 

ホスト名、IPが設定された状態でOSがインストールされます。

VMインストール(KVM

VMのインストールにもKickstartを使っています。個別にKickstartコンフィグを作成することもありますが、検証用のテンポラリサーバなどであれば「動的にコンフィグを作成するphp」を置いてるのでそれを使います。

[root@cent ~]# virt-install  --connect qemu:///system  \
--name vm01  \
--ram 512  \
--vcpus=1  \
--disk path=/vm01.img \
--os-type=linux  \
--os-variant=virtio26  \
--accelerate \
--nographics  \
--location='http://192.168.1.10/os/CentOS-5.5-x86_64/'  \
--extra-args='ks=http://172.25.5.128/ks/gen/ks.php?cfg=CentOS5.5_vm.cfg+test03+192.168.1.53 console=tty0 console=ttyS0,115200n8'

MACアドレスまで管理すれば「サーバ起動するだけでインストール完了」もできますが、誤インストールが怖いのとMACアドレス管理が面倒なので今のところやってません。
サーバ構成の種類、台数が多くなって設定がカオス化してきたら、cobbler&koanに切り替えたいですね。
(何度かcobblerも試してますが、それほど大きな規模でなければ今回のようにDHCP、TFTPなど使い慣れたツールの組合せで構築したほうが管理が楽です)