プランスクリプトについて

プランスクリプトは、展開プロセスやキャプチャープロセスの一部分を形成します。プランスクリプトは、パーソナライゼーション(展開)プロセスまたは一般化(キャプチャー)プロセスを実行するために使用される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を参照してください。

プランスクリプトの構文に関する推奨事項

プランスクリプトを作成する際には、以下の推奨事項を考慮できます。
  1. 次のguestfishコマンドは、OSボリュームのマウント時にイメージストリーマーが自動的にこれらのコマンドを呼び出すため、プランスクリプトには指定しないでください。
    • guestfish

    • add <disk.img>

    • run

  2. guestfishの規則に従って、
    • /で始まるファイルパスは、ゴールデンイメージのマウント済みのファイルシステム内のファイルパスを指します。

    • ./で始まるファイルパスは、イメージストリーマーアプライアンスによって提供される一時スペースを指します。この一時スペースは、パーソナライゼーションまたは一般化の実行中に一時ファイルを保存するために使用できます。
      注記:

      一時スペースは、パーソナライゼーションプロセスまたは一般化プロセスの後にクリアされます。

  3. bashコマンドは!を使用して呼び出すことができます。また、heredoc構文を使用してbashコマンドを埋め込むこともできます。

  4. プランスクリプトを実行すると、実行結果が展開ログに記録されますが、追加のログメッセージを作成するには、次の構文を使用します。

    echo "ImageStreamerLog: [ログメッセージ]"

  5. 文字@は、プランスクリプト内のカスタム属性を記述するために使用します。文字@を別の目的で使用する場合は、@の代わりに@@を使用する必要があります。