プランスクリプトについて
プランスクリプトは、展開プロセスやキャプチャープロセスの一部分を形成します。プランスクリプトは、パーソナライゼーション(展開)プロセスまたは一般化(キャプチャー)プロセスを実行するために使用されるguestfish
スクリプトです。展開タイプのプランスクリプトは展開の実行に使用され、キャプチャータイプのプランスクリプトはキャプチャーの実行に使用されます。展開タイプのプランスクリプトにはカスタム属性
が含まれます。カスタム属性は、サーバー固有の構成情報を提供するために使用されます。デフォルトでは、カスタム属性は、文字列
型であり、OSビルドプランで後から変更できます。
プランスクリプトを作成する際は特定の規則に従います。その1つが、カスタム属性を指定する@カスタム属性名:カスタム属性値@
構文です。ESXiホストのホスト名とSSHサーバー設定をカスタマイズするための例を以下に示します。
#!/usr/bin/guestfish -f #set the host name for the server esxcli system hostname set -H "@HostName:DEFAULT #set the SSH server flag esxcli network firewall ruleset set --ruleset-id "@SSH_SERVER:DISABLE@" --enabled yes
パーソナライゼーションプロセス中に、OSビルドプランで使用できるすべてのプランスクリプトが結合され、カスタム属性が指定した値に置き換えられます。その後、結合されたスクリプトがguestfish
環境で実行されます。
プランスクリプトにログメッセージを含めて、そのプランスクリプトの実行中のエラーをサーバー管理者に通知することができます。このログメッセージはサーバープロファイルのアクティビティに表示されます。これらのログメッセージは次の形式で含めることができます。
echo "ImageStreamerLog: [ログメッセージ]"
guestfish
について詳しくは、http://libguestfs.org/guestfish.1.htmlを参照してください。
プランスクリプトの構文に関する推奨事項
-
次の
guestfish
コマンドは、OSボリュームのマウント時にイメージストリーマーが自動的にこれらのコマンドを呼び出すため、プランスクリプトには指定しないでください。-
guestfish
-
add <disk.img>
-
run
-
-
guestfish
の規則に従って、-
/
で始まるファイルパスは、ゴールデンイメージのマウント済みのファイルシステム内のファイルパスを指します。 -
./
で始まるファイルパスは、イメージストリーマーアプライアンスによって提供される一時スペースを指します。この一時スペースは、パーソナライゼーションまたは一般化の実行中に一時ファイルを保存するために使用できます。注記:一時スペースは、パーソナライゼーションプロセスまたは一般化プロセスの後にクリアされます。
-
-
bash
コマンドは!
を使用して呼び出すことができます。また、heredoc
構文を使用してbash
コマンドを埋め込むこともできます。 -
プランスクリプトを実行すると、実行結果が展開ログに記録されますが、追加のログメッセージを作成するには、次の構文を使用します。
echo "ImageStreamerLog: [ログメッセージ]"
-
文字
@
は、プランスクリプト内のカスタム属性を記述するために使用します。文字@
を別の目的で使用する場合は、@
の代わりに@@
を使用する必要があります。