Cobbler 環境構築で Fedora15 を自動インストール
前回、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グループに所属するユーザを作成。
$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 ファイルを確認できる。
そして、マシンを起動。地味に感動。