Enrollment

准备镜像

如果您不使用 Image 服务,可以通过 URL 提供镜像给 Bare Metal 服务。

目前,只有两种类型的 URL 可以替代 Image 服务 UUID:HTTP(S) URL(例如,“http://my.server.net/images/img”)和 file URL(file:///images/img)。

然而,对于不同的硬件接口,存在一些限制

  • 如果您使用 直接部署 并使用 HTTP(S) URL,则必须向 Bare Metal 服务提供实例镜像的校验和。

    为了向后兼容,默认使用 MD5。要计算 MD5 校验和,可以使用以下命令

    $ md5sum image.qcow2
    ed82def8730f394fb85aef8a208635f6  image.qcow2
    

    或者,使用 SHA256 校验和或其他 Python 的 hashlib 支持的算法,例如:

    $ sha256sum image.qcow2
    9f6c942ad81690a9926ff530629fb69a82db8b8ab267e2cbd59df417c1a28060  image.qcow2
    
  • 如果您使用 直接部署 并使用 file:// URL,则必须确保镜像满足所有要求

    • 文件镜像必须可供每个 conductor 访问

    • 文件镜像不能位于 /dev/sys/proc/etc/boot/run 或其他系统路径中。

    • 文件镜像必须位于 conductor.file_url_allowed_paths 中列出的路径中

    警告

    Ironic CLI 工具不会将文件从本地机器传输到 conductor(s)。操作员应使用共享文件系统或配置管理来确保镜像的一致可用性。

注意

Bare Metal 服务通过检查其修改日期和时间来跟踪非 Glance 镜像的内容更改。例如,对于 HTTP 镜像,如果对“http://my.server.net/images/deploy.ramdisk”的 HEAD 请求的响应中的 ‘Last-Modified’ 标头值大于缓存的镜像修改时间,Ironic 将重新下载内容。对于“file://”镜像,使用文件系统的修改时间。

如果 HTTP 服务器未提供最后的修改日期和时间,则每次使用镜像时都会重新下载。

注册节点

  1. 在 Bare Metal 服务中创建一个节点。至少,您必须指定驱动程序名称(例如,ipmi)。您还可以在一个命令中指定所有必需的驱动程序参数。这将返回节点 UUID

    $ baremetal node create --driver ipmi \
        --driver-info ipmi_address=ipmi.server.net \
        --driver-info ipmi_username=user \
        --driver-info ipmi_password=pass \
        --driver-info deploy_kernel=file:///images/deploy.vmlinuz \
        --driver-info deploy_ramdisk=http://my.server.net/images/deploy.ramdisk
    +--------------+--------------------------------------------------------------------------+
    | Property     | Value                                                                    |
    +--------------+--------------------------------------------------------------------------+
    | uuid         | be94df40-b80a-4f63-b92b-e9368ee8d14c                                     |
    | driver_info  | {u'deploy_ramdisk': u'http://my.server.net/images/deploy.ramdisk',       |
    |              | u'deploy_kernel': u'file:///images/deploy.vmlinuz', u'ipmi_address':     |
    |              | u'ipmi.server.net', u'ipmi_username': u'user', u'ipmi_password':         |
    |              | u'******'}                                                               |
    | extra        | {}                                                                       |
    | driver       | ipmi                                                                     |
    | chassis_uuid |                                                                          |
    | properties   | {}                                                                       |
    +--------------+--------------------------------------------------------------------------+
    

    请注意,这里 deploy_kernel 和 deploy_ramdisk 包含镜像的链接,而不是 Image 服务 UUID。

  2. 与 Compute 服务类似,您还可以提供 capabilities 到节点属性,但它们仅由 Bare Metal 服务使用(例如,启动模式)。

  3. 然后创建一个端口,通过创建包含每个 NIC 的 MAC 地址的端口,告知 Bare Metal 服务节点的一部分网络接口卡。在这种情况下,它们用于为节点命名 PXE 配置

    baremetal port create $MAC_ADDRESS --node $NODE_UUID