7.10. 扩展发现镜像

您可以使用自定义事实、软件或设备驱动程序来扩展卫星发现镜像。您还可以提供一个压缩的存档文件,其中包含供镜像使用的额外代码。

流程

  1. 创建以下目录结构:

    .
    ├── autostart.d
    │   └── 01_zip.sh
    ├── bin
    │   └── ntpdate
    ├── facts
    │   └── test.rb
    └── lib
        ├── libcrypto.so.1.0.0
        └── ruby
            └── test.rb
    • autostart.d 目录包含在系统启动时由 POSIX 顺序执行的脚本,但在主机注册到卫星之前。
    • bin 目录添加到 $PATH 变量中,您可以将二进制文件放在这个目录中,并在 自动启动脚本中使用它们
    • 事实 目录添加到 FACTERLIB 变量中,以便可以配置自定义事实并发送到卫星。
    • lib 目录添加到 LD_LIBRARY_PATH 变量,lib/ruby 被添加到 RUBYLIB 变量中,以便可以正确执行 /bin 中的二进制文件。
  2. 创建目录结构后,使用以下命令创建一个 .zip 文件存档:

    zip -r my_extension.zip .
  3. 要告知发现它必须使用的扩展镜像,请将您的 zip 文件放在您的 TFTP 服务器上,使用发现镜像将 APPEND 行放在 PXELinux 模板的 APPEND 行,然后使用 fdi.zips 选项更新路径相对于 TFTP root 的路径。例如,如果您有两个归档,地址为 $TFTP/zip1.zip$TFTP/boot/zip2.zip,则使用以下语法:

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

您可以将新指令和选项附加到现有环境变量中(PATHLD_LIBRARY_PATHRUBYLIBFACTERLIB)。如果要在脚本中明确指定路径,则将 .zip 文件内容提取到镜像的 /opt/extension 目录中。

您可以创建多个 .zip 文件,但请注意它们会提取到 Discovery 镜像上的同一位置。如果在以后的 .zip 文件中提取的文件具有相同的文件名,则会覆盖更早的版本。