ディストリビューションコンストラクタでは、構築するイメージの種類に基づいて、イメージ作成プロセス中にカスタマイズするために使用する追加スクリプトを指定できます。マニフェストファイルはスクリプトを示し、スクリプトは汎用イメージをメディア固有の配布用に変換します。これらのスクリプトは、マニフェストファイルの実行セクションで参照されます。任意の数の custom-script チェックポイントを指定できます。
多くの場合、カスタムスクリプトは、構成ファイルを変更するか、マニフェストを使用して行うことができないその他の変更を行うために使用されます。
マニフェストファイルの execution セクションで指定されているスクリプトは、イメージ作成プロセス中に実行されます。実行セクションは、インストール前処理スクリプトまたはインストール後処理スクリプトを参照しません。
独自のカスタムスクリプトを作成する場合は、次の点に注意してください。
スクリプトには、Python プログラム、シェルスクリプト、またはバイナリを使用できます。
スクリプトは、マニフェストファイルの execution セクションに記載されている順に実行されます。
スクリプト (シェルと Python の両方のモジュール) 内で実行されるコマンドの標準出力 (stdout) およびエラー出力 (stderr) が、構築の完了時または試行時に報告するログファイルで取得されます。
root 役割になるユーザーがこのスクリプトを実行できることを確認します。
新しいスクリプトを参照する情報をマニフェストの execution セクションに追加します。新しいチェックポイントを追加する場所を確認するには、構築チェックポイントの設定を参照してください。
スクリプトには必ずフルパスを指定してください。チェックポイントは、マニフェストの execution セクションに記載されている順に実行されます。
マニフェストファイルの execution セクションに新しいスクリプトの参照を追加するときには、そのスクリプトのタスクの実行前または実行後にイメージ構築を一時停止するのに使用できるチェックポイント名を指定する必要があります。必要に応じて、チェックポイント名に関連付けたカスタムメッセージを指定することもできます。このメッセージを省略すると、スクリプトのパスがデフォルトのチェックポイントメッセージとして使用されます。構築プロセス中にチェックポイントが実行されると、チェックポイントメッセージが表示されます。
次のチェックポイントの例では、my-script という名前のカスタムスクリプトが参照されます。
<checkpoint name="my-script" desc="my new script" mod_path="solaris_install/distro_const/checkpoints/custom_script" checkpoint_class="CustomScript"> <args>/tmp/myscript.sh</args> </checkpoint>
イメージを 1 ステップで構築したり、さまざまなチェックポイントで構築を停止および再開して構築のステータスをチェックしたりできます。
手順については、イメージの構築を参照してください。
構築出力には、ログファイルの場所が表示されます。
次の例では、イメージディレクトリのパスは myscript.sh への引数として使用されています。
<checkpoint name="my-script" desc="my new script" mod_path="solaris_install/distro_const/checkpoints/custom_script" checkpoint_class="CustomScript"> <args>/tmp/myscript.sh {PKG_IMAGE_PATH}</args> </checkpoint>使用例 5 カスタム DC マニフェストに短いスクリプトを含める
次のカスタムスクリプトは、どのユーザーも jack というユーザーとしてログインできないようにします。これを変更して、パスワードを追加したり行を削除したりすることもできます。このチェックポイントは DC マニフェストの特定の場所に追加されたことに注意してください。スクリプトは、パッケージがインストールされてから boot_archive が作成されるまでの間に実行する必要があります。
<checkpoint name="set-ips-attributes" desc="Set post-install IPS attributes" mod_path="solaris_install/transfer/ips" checkpoint_class="TransferIPS"/> </checkpoint> <checkpoint name="lock-jack-account" desc="Lock the jack account from login" mod_path="solaris_install/distro_const/checkpoints/custom_script" checkpoint_class="CustomScript"> <args>sed 's/jack:.[^:]*:/jack:*LK*:/g' {PKG_IMAGE_PATH}/etc/shadow > {PKG_IMAGE_PATH}/etc/shadow.new; cp {PKG_IMAGE_PATH}/etc/shadow.new {PKG_IMAGE_PATH}/etc/shadow; rm {PKG_IMAGE_PATH}/etc/shadow.new</args> </checkpoint> <checkpoint name="pre-pkg-img-mod"
次のスクリプトは、インストールプロセス中にインストールクライアントにアクセスするために使用できる solaris ユーザーのパスワードを設定します。
<checkpoint name="set-ips-attributes" desc="Set post-install IPS attributes" mod_path="solaris_install/transfer/ips" checkpoint_class="TransferIPS"/> </checkpoint> <checkpoint name="solaris-password" desc="Set the password for the solaris account used during the installation process" mod_path="solaris_install/distro_const/checkpoints/custom_script" checkpoint_class="CustomScript"> <args>sed 's/solaris:.[^:]*:/solaris:string:/g' {PKG_IMAGE_PATH}/etc/shadow > {PKG_IMAGE_PATH}/etc/shadow.new; cp {PKG_IMAGE_PATH}/etc/shadow.new {PKG_IMAGE_PATH}/etc/shadow; rm {PKG_IMAGE_PATH}/etc/shadow.new</args> </checkpoint> <checkpoint name="pre-pkg-img-mod"