2行で、What is Cobbler
Cobblerを使えば、PXEブート環境が簡単に構築することができる。
さらにはサーバに応じて、適用するKickstartファイルの内容を変更することもできる。
Cobblerはマシンのインストール完了を検知する仕組みを持っている
CobblerではOSインストール後に適用するscript(Kickstartで言う[%post],Preseedで言う[late_command])でcobblerサーバのAPIを叩くようにし、インストールの正常終了をCobblerサーバに通知してOSインストール完了を検知することができる。
そうすることで、rebootして再びpxebootしても、ローカルディスクからブートする設定ファイルに変更/適用することができるようになる。(もし、この機構がなかった場合、BIOSブートオーダでPXEブートを最優先にしていると、OSインストールの無限ループになってしまう。)
実際に、cobblerの2.0以上では、
OSインストールが完了したサーバには、下記のpxe設定ファイルを適用して、ネットブートではなくディスクからブートするように変更している。(chain.c32のブートローダを使用して、チェインロードし、ディスクからブートする)
DEFAULT local
PROMPT 0
TIMEOUT 0
TOTALTIMEOUT 0
ONTIMEOUT local
LABEL local
KERNEL chain.c32
んで今回は、
このOSインストールした後に適用するPXE設定の内容を変更したい
言い換えると、netboot=Falseの時に生成される設定ファイルの内容を変更したい
結論から言うと、直接 /etc/cobbler/pxe/pxelocal.template を変更すればよいみたい。
ちなみに、なんで僕がlocalbootの方法を変えたかったかというと、うまくチェインロードできないサーバがあったので、チェインロードしないでlocalbootを使いたかったからである。なのでこんな感じに変更した。
DEFAULT local
PROMPT 0
TIMEOUT 0
TOTALTIMEOUT 0
ONTIMEOUT local
LABEL local
localboot 0
でも、この逆にlocalbootがうまくいかないサーバーもあるので、サーバによってチェインロードするかlocalbootするかを変更しようと思う。この辺はTemplateエンジンでCheetahが使われているので、簡単にできると思う。