7.9. 扩展发现镜像

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

流程

  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 变量;您可以在这个目录中放置二进制文件,并将它们用于 autostart 脚本。
    • 事实 目录添加到 FACTERLIB 变量中,以便配置并发送到 Satellite。
    • lib 目录添加到 LD_LIBRARY_PATH 变量中,将 lib/ruby 添加到 RUBYLIB 变量中,以便可以正确执行 /bin 中的二进制文件。
  2. 创建目录结构后,使用以下命令创建一个 .zip 文件存档:

    # zip -r my_extension.zip .
  3. 要告知发现镜像,必须使用 Discovery 镜像在 TFTP 服务器上放置 zip 文件,然后使用指向 TFTP root 的 fdi.zips 选项更新 PXELinux 模板的 APPEND 行。例如,如果您在 $ TFTP/zip1.zip$ TFTP/boot/zip2.zip 这两个存档,请使用以下语法:

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

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

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