21.3. キックスタートファイル内のスクリプト
キックスタートファイルには以下のスクリプトを追加できます。
-
%pre -
%pre-install -
%post
このセクションでは、スクリプトに関する以下の情報を提供します。
- 実行時間
- スクリプトに追加できるコマンドのタイプ
- スクリプトの目的
- スクリプトオプション
21.3.1. %pre スクリプト リンクのコピーリンクがクリップボードにコピーされました!
%pre スクリプトは、キックスタートファイルの読み込み直後 (スクリプトが完全に解析され、インストールが開始する前) にシステムで実行されます。各セクションは、%pre で開始し、%end で終了する必要があります。
%pre スクリプトは、ネットワークおよびストレージデバイスのアクティベートおよび設定に使用できます。また、インストール環境で利用可能なインタープリターを使用して、スクリプトを実行することもできます。インストールを進める前に特定の設定を必要とするネットワークやストレージがある場合や、追加のログパラメーターや環境変数などを設定するスクリプトがある場合には、%pre スクリプトを追加すると便利です。
%pre スクリプトでの問題のデバッグは難しくなる可能性があるため、%pre スクリプトは必要な場合にのみ使用することが推奨されます。
キックスタートの %pre セクションは、インストーラーイメージ (inst.stage2) がフェッチされた後に発生するインストールの段階で実行されます。これは、root がインストーラー環境 (インストーラーイメージ) に切り替わった 後、および Anaconda インストーラー自体が起動した 後 に実行されます。次に、%pre の設定が適用され、キックスタートの URL などで設定されたインストールリポジトリーからパッケージを取得するために使用できます。ただし、ネットワークからイメージ (inst.stage2) をフェッチするようにネットワークを設定するために使用する ことはできません。
インストール環境の /sbin ディレクトリーおよび /bin ディレクトリーにあるほとんどのユーティリティーの他に、%pre スクリプトでは、ネットワーク、ストレージ、およびファイルシステムに関連するコマンドを使用できます。
%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 の詳細は、動的プログラミング言語のインストールおよび使用 での Python の概要 を参照してください。--erroronfail-
スクリプトが失敗するとエラーを表示し、インストールを停止します。エラーメッセージは、失敗の原因がログ記録されている場所を示します。インストールされたシステムは、不安定で起動できない状態になる可能性があります。
inst.nokillオプションを使用して、スクリプトをデバッグできます。 --log=スクリプトの出力を、指定したログファイルに記録します。以下に例を示します。
%pre --log=/tmp/ks-pre.log