ネットワークインストール環境がさくっと構築できる Cobbler がおもしろそうなので触ってみたメモ。参考にしたサイトは以下の通り。
以下、Fedora 7 で Cobbler を動かしてみたメモ。
yum で一発インストール。
$ sudo yum install cobbler
cobbler check コマンドを実行すると、見直すべき設定ポイントを教えてくれる。親切。
$ sudo cobbler check
The following potential problems were detected:
#0: The 'server' field in /var/lib/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
#1: For PXE to be functional, the 'next_server' field in /var/lib/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
#2: service cobblerd is not running
#3: syslinux should be installed but is not, expecting to find something at /usr/lib/syslinux/pxelinux.0
#4: service xinetd is not running
#5: change 'disable' to 'no' in /etc/xinetd.d/tftp
#6: service httpd is not running
#7: since iptables may be running, ensure 69, 80, 25150, and 25151 are unblocked#8: reposync is not installed, need for cobbler reposync, install/upgrade yum-utils?
#9: yumdownloader is not installed, needed for cobbler repo add with --rpm-list
parameter, install/upgrade yum-utils?
これを元に設定変更を行っていく。まずは /var/lib/cobbler/settings を以下のように修正。
manage_dhcp: 1
next_server: '192.168.10.12'
server: 192.168.10.12
192.168.10.12 は Cobbler が動いているマシンの IP アドレス。
cobblerd を起動。
$ sudo /sbin/chkconfig cobblerd on
$ sudo /etc/init.d/cobblerd start
syslinux をインストール。
$ sudo yum install syslinux
tftpd と xinetd を起動。
$ sudo /sbin/chkconfig tftp on
$ sudo /sbin/chkconfig xinetd on
$ sudo /etc/init.d/xinetd start
httpd を起動。
$ sudo /sbin/chkconfig httpd on
$ sudo /etc/init.d/httpd start
iptables はとりあえずオフにしとく。
$ sudo /sbin/chkconfig iptables off
$ sudo /etc/init.d/iptables stop
yum-utils のインストール。
$ sudo yum install yum-utils
/etc/cobbler/dhcp.template を以下のような感じで修正。
# ******************************************************************
# Cobbler managed dhcpd.conf file
#
# generated from cobbler dhcp.conf template ($date)
#
# ******************************************************************
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.10.100 192.168.10.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
$insert_cobbler_system_definitions
dhcp をインストールしておく。dhcpd はこの段階では起動しなくていい。(起動してもエラーになる。)
$ sudo yum install dhcp
$ sudo /sbin/chkconfig dhcpd on
インストールイメージとか、キックスタートファイルとかを作成。
$ sudo cobbler import --path=rsync://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/7/Fedora/i386/os --name=f7
このコマンド一発で必要なものを全部つくってくれる。超簡単。時間はかかるけど。
cobbler report を実行すると、どこにどんなファイルがあるかとかを表示してくれる。
$ sudo cobbler report
distro : f7-i386
kernel : /var/www/cobbler/ks_mirror/f7/images/pxeboot/vmlinuz
initrd : /var/www/cobbler/ks_mirror/f7/images/pxeboot/initrd.img
kernel options : {}
architecture : x86
ks metadata : {'tree': 'http://@@server@@/cblr/links/f7-i386'}
breed : redhat
distro : f7-xen-i386
kernel : /var/www/cobbler/ks_mirror/f7/images/xen/vmlinuz
initrd : /var/www/cobbler/ks_mirror/f7/images/xen/initrd.img
kernel options : {}
architecture : x86
ks metadata : {'tree': 'http://@@server@@/cblr/links/f7-xen-i386'}
breed : redhat
profile : f7-i386
distro : f7-i386
kickstart : /etc/cobbler/kickstart_fc6.ks
kernel options : {}
ks metadata : {}
virt file size : 5
virt ram : 512
virt type : auto
virt path :
virt bridge : xenbr0
virt cpus : 1
repos : []
dhcp tag : default
server : <<inherit>>
profile : f7-xen-i386
distro : f7-xen-i386
kickstart : /etc/cobbler/kickstart_fc6.ks
kernel options : {}
ks metadata : {}
virt file size : 5
virt ram : 512
virt type : auto
virt path :
virt bridge : xenbr0
virt cpus : 1
repos : []
dhcp tag : default
server : <<inherit>>
これを見て分かるとおり、Xen 用のイメージなんかも勝手に作ってくれる。
あとは必要に応じてキックスタートファイル(/etc/cobbler/kickstart_fc6.ks)なんかをいじる。何かファイルを修正したりしたら、cobbler sync を忘れずに実行。
$ sudo cobbler sync
ここまできたら、別のマシンを PXE ブートで起動して、boot プロンプトで cobbler import で作成したイメージの名前を入力。
boot: f7-i386
あとは勝手にインストールが始まる。
以下のように system 登録しておくと、PXE ブート時にイメージ名を入力しなくても、勝手に割り当てられたイメージでブートしてくれる。
$ sudo cobbler system add --name=test-server --mac=00:0C:29:7E:3A:8B --profile=f7-i386