21.3. キックスタートファイル内のスクリプト
キックスタートファイルには以下のスクリプトを追加できます。
-
%pre -
%pre-install -
%post
このセクションでは、スクリプトに関する以下の情報を提供します。
- 実行時間
- スクリプトに追加できるコマンドのタイプ
- スクリプトの目的
- スクリプトオプション
21.3.1. %pre スクリプト リンクのコピーリンクがクリップボードにコピーされました!
%pre スクリプトは、キックスタートファイルの読み込み直後 (スクリプトが完全に解析され、インストールが開始する前) にシステムで実行されます。各セクションは、%pre で開始し、%end で終了する必要があります。
ネットワークデバイスやストレージデバイスの有効化と設定には、%pre スクリプトを使用できます。また、インストール環境で利用可能なインタープリターを使用して、スクリプトを実行することもできます。インストールを進める前に特別な設定が必要なネットワークやストレージがある場合は、%pre スクリプトを追加すると便利です。たとえば、スクリプトを使用して追加のロギングパラメーターや環境変数を設定できます。
%pre スクリプトでの問題のデバッグは難しくなる可能性があるため、%pre スクリプトは必要な場合にのみ使用することが推奨されます。
キックスタートの %pre セクションは、インストーラーイメージ (inst.stage2) が取得された後に行われるインストール段階で実行されます。つまり、ルートがインストーラー環境 (インストーラーイメージ) に切り替わった 後、そして Anaconda インストーラー自体が起動した 後 に実行されます。その後、%pre の設定が適用され、キックスタートの URL などで設定されたインストールリポジトリーからパッケージを取得するために使用できるようになります。ただし、この設定を使用して、ネットワークからイメージ (inst.stage2) を取得するようにネットワークを設定することは できません。
%pre スクリプトでは、ネットワーク、ストレージ、ファイルシステムに関連するコマンドを使用できます。これに加えて、インストール環境の /sbin および /bin ディレクトリーにあるほとんどのユーティリティーを使用できます。
%pre セクションのネットワークにはアクセスできます。この時点では name サービスが設定されていないため、URL ではなく IP アドレスだけが有効です。
pre スクリプトは、chroot 環境では実行しません。
21.3.1.1. %pre スクリプトセクションのオプション リンクのコピーリンクがクリップボードにコピーされました!
以下のオプションを使用して、インストール前のスクリプトの動作を変更できます。オプションを使用するには、スクリプトの最初の部分で %pre 行にオプションを追加してください。以下に例を示します。
%pre --interpreter=/usr/libexec/platform-python
-- Python script omitted --
%end
--interpreter=Python などの別のスクリプト言語を指定できます。システムで利用可能なスクリプト言語は、どれでも使用できます。ほとんどの場合は、
/usr/bin/sh、/usr/bin/bash、および/usr/libexec/platform-pythonになります。platform-pythonインタープリターは、Python バージョン 3.6 を使用することに注意してください。新しいパスおよびバージョン用に、Python スクリプトを以前の RHEL バージョンから変更する必要があります。また、platform-pythonは、システムツールを対象としています。インストール環境外ではpython36パッケージを使用してください。Red Hat Enterprise Linux における Python の詳細は、Introduction の概要 を参照してください。--erroronfail-
スクリプトが失敗するとエラーを表示し、インストールを停止します。エラーメッセージは、失敗の原因がログ記録されている場所を示します。インストールされたシステムは、不安定で起動できない状態になる可能性があります。
inst.nokillオプションを使用して、スクリプトをデバッグできます。 --log=スクリプトの出力を、指定したログファイルに記録します。以下に例を示します。
%pre --log=/tmp/ks-pre.log