Cobbler 環境構築で Fedora15 を自動インストール

Fedora15 で Cobbler 環境構築 の続き。


前回、Fedora15 の distro と profile のインポート及び、ローカルリポジトリの構築が完了。
今回は、 ks ファイルをいじくって、自動インストールの構成内容を記述する。


Fedora15をインポートした時点で、kickstartファイルとして、/var/lib/cobbler/kickstarts/sample_end.ks が自動的に設定されている。
このサンプルを元に書き換えていく。

$ sudo cp /var/lib/cobbler/kickstarts/{sample_end.ks,Fedora15-x86_64.ks}
$ sudo vi /var/lib/cobbler/kickstarts/Fedora15-x86_64.ks
# kickstart template for Fedora 8 and later.
# (includes %end blocks)
# do not use with earlier distros

#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth  --useshadow  --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disable
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard jp106
# System language
lang en_US.UTF-8
# Use network installation
url --url=$tree
# If any cobbler repo definitions were referenced in the kickstart profile, include them here.
$yum_repo_stanza
# Network information
$SNIPPET('network_config')
# Reboot after installation
reboot

#Root password
rootpw --iscrypted $default_password_crypted
#add user
$SNIPPET('add_user')
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
# skipx
xconfig --startxonboot
# System timezone
timezone Asia/Tokyo
# Install OS instead of upgrade
install
# Clear the Master Boot Record
zerombr
# Allow anaconda to partition the system as needed
autopart

%pre
$SNIPPET('log_ks_pre')
$kickstart_start
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end

%packages
$SNIPPET('func_install_if_enabled')
$SNIPPET('package_lists')
%end

%post
$SNIPPET('log_ks_post')
# Start yum configuration
$yum_config_stanza
# End yum configuration
$SNIPPET('post_install_kernel_options')
$SNIPPET('post_install_network_config')
$SNIPPET('func_register_if_enabled')
$SNIPPET('download_config_files')
$SNIPPET('koan_environment')
$SNIPPET('redhat_register')
$SNIPPET('cobbler_register')
# Enable post-install boot notification
$SNIPPET('post_anamon')
# Start final steps
$kickstart_done
# End final steps
%end

変更点は以下のとおり、

  • firewall 無効化
  • 日本語キーボード
  • en_US → en_US.UTF-8
  • $SNIPPET('add_user')設定(後述)
  • 起動時にGUIログイン画面を表示するように設定( xconfig --startxonboot )
  • タイムゾーン変更
  • %packages に $SNIPPET('package_lists') 追加(後述)

kickstartファイルの設定について
参考1:http://www.linuxmania.jp/kickstart.html
参考2:http://fedoraproject.org/wiki/Anaconda/Kickstart
参考3:http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch-kickstart2.html

$SNIPPET('add_user') について

cobbler にはスニペットという機能がある。
kickstart 内の共通部分を抜き出してモジュール化した物。
ここでは、管理ユーザ追加用のスニペットを作成する。

$ sudo vi /var/lib/cobbler/snippets/add_user
user --name=admin --groups=wheel --gecos="Admin User" --iscrypted --password=$1$Q9QuRBrc$N8HNqiAu6/a1N/r.FxzOn/

user オプションについては↑の参考2内に詳しく書いてある。
ユーザ名がadminでwheelグループに所属するユーザを作成。

参考4:https://fedorahosted.org/cobbler/wiki/KickstartSnippets

$SNIPPET('package_lists') について

また、スニペットは設定を共通化した上で、distro、profile、system 毎に設定を上書きできる。
具体的には、以下のようにな順序でスニペットファイルを探してくる。

/var/lib/cobbler/snippets/per_system/$snippet_name/$system_name
/var/lib/cobbler/snippets/per_profile/$snippet_name/$profile_name
/var/lib/cobbler/snippets/per_distro/$snippet_name/$distro_name
/var/lib/cobbler/snippets/$snippet_name

package_lists という共通スニペットを作り、さらにインポートしたディストリ用のスニペットを作る。
# あんまり意味ないけど。

$ sudo touch /var/lib/cobbler/snippets/package_lists
$ sudo vi /var/lib/cobbler/snippets/per_distro/package_lists/Fedora15-x86_64
@admin-tools
@base
@core
@development-tools
@editors
@fonts
@gnome-desktop
@graphical-internet
@hardware-support
@input-methods
@online-docs
@base-x
xfsprogs
mtools
gpgme
lua
emacs
gvfs-obexftp
hdparm
iok
gdm
-evolution
-empathy
-nspluginwrapper
-transmission-gtk
-icedtea-web
-evolution-NetworkManager

インストールするパッケージは、cobbler 環境用に設定した Fedora の ks ファイルから流用。



profile に作成した ks ファイルとリポジトリを登録。
さらに、実際にインストールするシステム毎の(ネットワーク)設定を追加。
今回、IPアドレスをstaticで設定するようにしたので、前回設定したDHCP機能をオフ。
ついでに以下のようにsettingsを変更。

  • IP を DHCP でなくstatic に設定するため、DHCPマネージャをオフ
  • 登録したリポジトリをインストール後、/etc/yum.repo.d/以下に登録しない
  • インストール後 pxe ブートしない
$ sudo cobbler profile edit --name=Fedora15-x86_64 --repos="Fedora15-x86_64 Fedora15-x86_64-updates" --kickstart=/var/lib/cobbler/kickstarts/Fedora15-x86_64.ks
$ sudo cobbler system add --name=<インストールするマシンのMACアドレス> --ip=192.168.135.10 --hostname=test --static=1 --gateway=192.168.135.1 --subnet=255.255.255.0 --profile Fedora15-x86_64
$ sudo vi /etc/cobbler/settings
・・・
manage_dhcp: 0
・・・
pxe_just_once: 1
・・・
yum_post_install_mirror: 0
・・・

参考5:https://fedorahosted.org/cobbler/wiki/ManageDhcp
参考6:http://blog.tnmt.info/2011/07/06/scientific-linux-kvm-with-cobbler-koan/
参考7:http://www.cafechantant.com/trac/wiki/cobbler_install_on_centos5


ちなみに、pxe_just_onceで pxe からブートしなくなった system は以下のコマンドで再び有効にできる。

$ sudo cobbler system edit --name=<name> --netboot-enabled=1


設定が済んだら、ファイル全体を更新。

$ sudo cobbler sync

sudo cobbler profile getks --name=<プロファイル名> でそのプロファイルの kickstart ファイルを確認できる。
そして、マシンを起動。地味に感動。