批量供应

本指南介绍如何组合使用 Clear Linux OS 安装程序、Ister 和 ICIS 来批量供应 Clear Linux* OS。

概述

要配置批量供应,请执行以下操作:

  • 定义 Ister 配置文件以自定义安装过程
  • 定义 cloud-init* 文件以自定义安装实例
  • 在 ICIS 中托管配置文件,以便 Ister 在安装过程中使用它们

图 1 描述了为执行批量供应而需要设置的 PXE 服务器和 PXE 客户端之间的信息流。

Bulk provision information flow

图 1:批量供应信息流

必备条件

执行批量供应之前,请确认您的 PXE 服务器能够从网络引导 Clear Linux OS。有关详细信息,请参阅我们的 如何执行 iPEX 引导的指南 (使用 NAT)。

由于批量供应依赖于重新引导,请确保已经做好以下准备:

  • 没有可引导的现有磁盘。
  • 在执行安装的计算机上,网络引导选项必须紧跟在磁盘引导选项之后。

配置

  1. 按照 ICIS GitHub* 存储库中的入门指南安装 ICIS。

  2. 创建一个 Ister 安装文件,并将其保存到 ICIS Web 托管目录下的 static/ister 目录。该安装文件是一个 JSON 块,它为 Ister 提供了执行安装所需的步骤。该文件概述了 Ister 应该设置哪些分区、文件系统和挂载点。最后,该文件概述了要安装的捆绑包。有关可用捆绑包的列表,请参阅我们的 可用的捆绑包 文档。以下示例显示了 Ister 安装文件的内容:

    {
        "DestinationType":"physical",
        "PartitionLayout":[
            {"disk":"sda", "partition":1, "size":"512M", "type":"EFI"},
            {"disk":"sda", "partition":2, "size":"512M", "type":"swap"},
            {"disk":"sda", "partition":3, "size":"rest", "type":"linux"}
        ],
        "FilesystemTypes":[
            {"disk":"sda", "partition":1, "type":"vfat"},
            {"disk":"sda", "partition":2, "type":"swap"},
            {"disk":"sda", "partition":3, "type":"ext4"}
        ],
        "PartitionMountPoints":[
            {"disk":"sda", "partition":1, "mount":"/boot"},
            {"disk":"sda", "partition":3, "mount":"/"}
        ],
        "Version":"latest",
        "Bundles":[
            "kernel-native",
            "os-core",
            "os-core-update",
            "os-cloudguest"
        ],
        "IsterCloudInitSvc":"http://192.168.1.1:60000/icis/"
    }
    

    重要

    ICIS 上托管的每个 Ister 安装文件都必须包含 IsterCloudInitSvc 参数以及 os-cloudguest 捆绑包。这些条目允许 Ister 自定义安装实例。

  3. 创建一个 Ister 配置文件来定义 Ister 安装文件的位置。将其保存到 ICIS Web 托管目录下的 static/ister 目录。以下示例显示了一个 Ister 配置文件:

    template=http://192.168.1.1:60000/icis/static/ister/ister.json
    
  4. 向引导网络映像的命令行添加一个内核参数来修改 iPXE 引导脚本。添加内核参数 isterconf,并将 ICIS 托管的 Ister 配置文件的位置作为内核参数值。以下示例显示了带有 isterconf 参数的 iPXE 引导脚本:

    #!ipxe
    kernel linux quiet init=/usr/lib/systemd/systemd-bootchart initcall_debug tsc=reliable no_timer_check noreplace-smp rw initrd=initrd isterconf=http://192.168.1.1:60000/icis/static/ister/ister.conf
    initrd initrd
    boot
    

    注解

    Clear Linux OS 网络映像引导后,Ister 会在 /proc/cmdline 中检查引导期间使用的参数以找到 Ister 配置文件的位置。

  5. 编写 cloud-init 文档,根据您的需求自定义安装实例。cloud-init 文档提供了如何编写 cloud-init 文档的指南。本指南涵盖了安装后 cloud-init 提供的自定义选项。

  6. 将 cloud-init 文档保存到 ICIS Web 托管目录下的 static/roles 目录,并使用要创建的角色的名称。例如,角色可以是 “database”、”web” 或 “ciao”。

  7. 创建角色(也称为 cloud-init 文件)后,将角色分配给 PXE 客户端的 MAC 地址。为此,请修改 ICIS Web 托管目录下 static 目录中的 config.txt 文件。以下示例显示了一个分配示例:

    # MAC address,role
    00:01:02:03:04:05,ciao
    

    如果 PXE 客户端的 MAC 地址未列在 config.txt 文件中,则会按如下方式为这些 MAC 地址定义默认角色:

    # MAC address,role
    default,ciao
    
  8. 确认在您的本地网络上是否可以访问以下 URL:

    • http://192.168.1.1:60000/icis/static/ister/ister.conf
    • http://192.168.1.1:60000/icis/static/ister/ister.json
    • http://192.168.1.1:60000/icis/get_config/<MAC address>
    • http://192.168.1.1:60000/icis/get_role/<role>
    • http://192.168.1.1:60000/ipxe/ipxe_boot_script.txt
  9. 打开 PXE 客户端的电源,观看它引导并安装 Clear Linux OS。

  10. 关闭再开启 PXE 客户端的电源,观看它自定义 Clear Linux OS 安装。

祝贺您!您已成功执行 Clear Linux OS 的批量供应。