Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

27.3.3. インストール前のスクリプト

%pre スクリプトは、キックスタートファイルの解析直後、ただしインストールの開始前に、システムで実行されます。このセクションは、「キックスタートのコマンドとオプション」 にあるキックスタートコマンドの後で、キックスタートファイルの終わりの方に配置し、%pre で始まり %end で終了する必要があります。キックスタートファイルに %post セクションも含まれる場合は、%pre および %post セクションが含まれる順番は重要ではありません。
%pre スクリプトは、ネットワークおよびストレージデバイスのアクティベートと設定に使用できます。また、インストール環境で利用可能なインタープリターを使用して、スクリプトを実行することもできます。インストールを進める前に特定の設定を必要とするネットワークやストレージがある場合や、追加のログパラメーターや環境変数などを設定するスクリプトがある場合には、%pre スクリプトが便利になります。%pre スクリプトでの問題のでバッグは難しくなる可能性があるので、%pre スクリプトは必要な場合にのみ使用することが推奨されます。
%pre スクリプトでは、ネットワーク、ストレージ、ファイルシステムに関連するコマンドが利用でき、また、インストール環境の /sbin および /bin ディレクトリーにあるほとんどのユーティリティーも使用できます。
%pre セクションのネットワークにはアクセスできます。この時点では name サービス が設定されていないため、URL ではなく IP アドレスだけが有効です。
キックスタートのインストール前のスクリプトセクションは、複数のインストールツリーやソースメディアを管理できません。インストール前のスクリプトはインストールプロセスの第 2 段階で実行されるため、このような情報は作成された各キックスタートファイルに含める必要があります。
注記
インストール後のスクリプトとは違って、インストール前のスクリプトは chroot 環境では実行されません。
以下のオプションを使用して、インストール前のスクリプトの動作を変更できます。オプションを使用するには、スクリプトの最初の部分で %pre 行にオプションを追加してください。以下に例を示します。
%pre --interpreter=/usr/bin/python
--- Python script omitted --
%end
--interpreter=
Python などの別のスクリプト言語を指定できます。システムで利用可能なスクリプト言語は、どれでも使用できます。ほとんどの場合、/usr/bin/sh/usr/bin/bash、および /usr/bin/python になります。
--erroronfail
スクリプトが失敗するとエラーを表示し、インストールを停止します。エラーメッセージは、失敗の原因がログ記録されている場所を示します。
--log=
スクリプトの出力を指定されたログファイルにログします。以下に例を示します。
%pre --log=/mnt/sysimage/root/ks-pre.log
以下は %pre セクションの例です。

例27.5 %pre スクリプトの例

%pre
#!/bin/sh
hds=""
mymedia=""
for file in /proc/ide/h* do
mymedia=`cat $file/media`
if [ $mymedia == "disk" ] ; then
hds="$hds `basename $file`"
fi
done
set $hds
numhd=`echo $#`
drive1=`echo $hds | cut -d' ' -f1`
drive2=`echo $hds | cut -d' ' -f2`

#Write out partition scheme based on whether there are 1 or 2 hard drives
if [ $numhd == "2" ] ; then
#2 drives
echo "#partitioning scheme generated in %pre for 2 drives" > /tmp/part-include
echo "clearpart --all" >> /tmp/part-include
echo "part /boot --fstype xfs --size 75 --ondisk hda" >> /tmp/part-include
echo "part / --fstype xfs --size 1 --grow --ondisk hda" >> /tmp/part-include
echo "part swap --recommended --ondisk $drive1" >> /tmp/part-include
echo "part /home --fstype xfs --size 1 --grow --ondisk hdb" >> /tmp/part-include
else
#1 drive
echo "#partitioning scheme generated in %pre for 1 drive" > /tmp/part-include
echo "clearpart --all" >> /tmp/part-include
echo "part /boot --fstype xfs --size 75" >> /tmp/part-include
echo "part swap --recommended" >> /tmp/part-include
echo "part / --fstype xfs --size 2048" >> /tmp/part-include
echo "part /home --fstype xfs --size 2048 --grow" >> /tmp/part-include
fi
%end
このスクリプトはシステム内のハードドライブ数を判定して、ドライブ数が 1 台または 2 台かに合わせて、異なるパーティション設定スキームでテキストファイルを書き込みます。キックスタートファイルにパーティション設定コマンドのセットではなく、以下の行を含めます。
%include /tmp/part-include
スクリプト内で選択されたパーティション設定コマンドが使用されるようになります。