Kickstartファイルはインストールに関する情報などをまとめたものです。例えばCentOSのインストール用DVDから起動してインストールする際に、GUIから入力したような情報になります。それ以外に事後に実行するスクリプトも記述できます。
OSインストーラーがKickstartファイルを取得する方法はいくつかありますが、本連載ではHTTPサーバー経由で取得するように構成します。
このKickstartファイルは「system-config-kickstart」というツールでも作成できますが、一般にはインストールした環境のrootユーザーのホームディレクトリにあるファイル「anaconda-ks.cfg」をコピーして修正する方が楽でしょう。anaconda-ks.cfgは、その環境をインストールした際の情報で生成されたKickstartファイルで、OSインストーラであるanacondaによって自動的に作成されています。
Kickstartファイルは3つのセクションに分かれています。それぞれのセクションごとの記述内容を説明しますので、自動構築サーバーのインストールした際に作成されたanaconda-ks.cfgをdefault.cfgというファイル名でコピーして修正してみましょう。
新規/上書きインストールの選択やインストールメディアの指定、パーティションの分割方法やタイムゾーンなど指定します。修正すべきポイントに絞って説明します。
DVDからインストールした場合はcdromと記述されていますので、これをurlに変更します。指定するオプションは先ほど自動構築サーバーに作成したYumリポジトリへのURLになります。
ネットワーク設定を記述します。手動インストールした際の設定内容になっていますので、必要に応じて修正します。
rootパスワードのハッシュです。ハッシュは以下のコマンドラインで求められます。表示されたハッシュをコピー&ペーストします。
# grub-crypt --sha-512 Password: {パスワードを入力} Retype password: {パスワードを再入力} {パスワードのハッシュ}
もしくはopensslを使用します。opensslの場合はMD5形式のみになります(grub-cryptの例はSHA-512)。
# openssl passwd -1 Password: {パスワードを入力} Verifying - Password: {パスワードを再入力} {パスワードのハッシュ}
SELinuxの設定です。手動でのインストールでは無効にできませんが、Kickstartファイルを利用する場合はインストール時に無効化できます。
インストール時、ディスクを初期化する場合に記述します。
パーティションの設定です。手動インストールした際の設定内容が、コメントアウトされた状態で記載されていますので、その内容を参考に記述します。
YumリポジトリへのURLを記述します。
以上を反映したコマンドセクションの記述例は以下になります。
install url --url http://{自動構築サーバーのIPアドレス}/centos65 lang ja_JP.UTF-8 keyboard jp106 network --bootproto=dhcp --onboot=yes rootpw --iscrypted {パスワードのハッシュ} selinux --disabled authconfig --enableshadow --passalgo=sha512 timezone Asia/Tokyo bootloader --location=mbr --driveorder=sda zerombr clearpart --all part /boot --fstype=ext4 --asprimary --size=128 part / --fstype=ext4 --grow --size=1 part swap --size=1024 reboot repo --name="DVD" --baseurl=http://{自動構築サーバーのIPアドレス}/centos65 --cost=100
コマンドセクションの次に記述します。%packagesから%endの囲まれた部分がパッケージセクションになります。
パッケージグループの内容は、CentOSのインストール用DVDの/repodata配下に圧縮されたXMLとして格納されています。ただし、このXMLファイルはあまり可読性が良くないため、anaconda-ks.cfgを流用しない場合はsystem-config-kickstartで作成した方が無難でしょう。
Minimal(最小構成)インストールでの、パッケージセクションの例を以下に示します。
%packages @core @japanese-support @server-policy @workstation-policy %end
このセクションはKickstartファイルの末尾に記述します。インストール開始前と終了後のそれぞれのタイミングで実行できます。
インストール開始前のスクリプトは「%pre」、インストール終了後のスクリプトは「%post」で開始し、「%end」で閉じます。%preスクリプトはchrootされない状態で、%postスクリプトはインストール先にchrootされた状態で実行されます。実行時のログファイル名も指定できます。
インストール終了後、/etc/hostsファイルにエントリを追加する簡単な例を以下に示します。
%post --log=/root/install-post.log echo "192.168.1.2 puppet" | cat >> /etc/hosts %end
Kickstartファイルの詳細については、レッドハット社のWebサイトや「RedHat Linux KickStart HOWTO: KickStart の設定ファイル」などにドキュメントがありますので、そちらを参照してください。
また、作成したKickstartファイルはWeb公開用のディレクトリ(/var/www/html/)に配置します。TFTPサーバーの設定例ではksディレクトリ配下に配置するように設定しましたので、以下のようなコマンドを実行して配置してください。
# mkdir /var/www/html/ks # cp default.cfg /var/www/html/ks
Copyright © ITmedia, Inc. All Rights Reserved.