7.9. Discovery イメージの拡張

カスタムファクト、ソフトウェア、またはデバイスドライバーを使って Satellite Discovery イメージを拡張することができます。イメージで使用できるように追加コードが含まれる圧縮されたアーカイブファイルを提供することもできます。

手順

  1. 最初に、以下のディレクトリー構造を作成します。

    .
    ├── autostart.d
    │   └── 01_zip.sh
    ├── bin
    │   └── ntpdate
    ├── facts
    │   └── test.rb
    └── lib
        ├── libcrypto.so.1.0.0
        └── ruby
            └── test.rb
    • autostart.d ディレクトリーには、ホストが Satellite に登録される前の起動時に POSIX の順にイメージにより実行されるスクリプトが含まれています。
    • bin ディレクトリーは、$PATH 変数に追加され、このディレクトリーにバイナリーファイルを配置して、autostart スクリプトで使用します。
    • facts ディレクトリーは FACTERLIB 変数に追加され、カスタムファクトを設定して Satellite に送信できるようになります。
    • /bin のバイナリーファイルが正しく実行できるように、lib ディレクトリーは LD_LIBRARY_PATH 変数に、lib/rubyRUBYLIB 変数に追加されます。
  2. ディレクトリー構造の作成後に、以下のコマンドで .zip アーカイブにパッケージ化します。

    zip -r my_extension.zip .
  3. Discovery イメージで使用される拡張子が認識されるように、検出イメージと共に zip ファイルを TFTP サーバーに配置してから、PXELinux テンプレートの APPEND 行を、パスが TFTP ルートに相対する fdi.zips オプションで更新します。たとえば、 $TFTP/zip1.zip および $TFTP/boot/zip2.zip に 2 つのアーカイブがある場合は、以下の構文を使用します。

    fdi.zips=zip1.zip,boot/zip2.zip

既存の環境変数 (PATHLD_LIBRARY_PATHRUBYLIB および FACTERLIB) に、新規ディレクティブとオプションを追加できます。スクリプトで明示的にパスを指定する場合には、.zip ファイルのコンテンツが、イメージの /opt/extension ディレクトリーに展開されます。

複数の .zip ファイルを作成できますが、Discovery イメージと同じ場所に展開される点に注意してください。.zip ファイルから後で展開されたファイルは、同じファイル名を使用している場合には、以前のバージョンを上書きします。