配置

本指南涵盖了在独立模式下手动配置 Bare Metal 服务。或者,可以使用 Bifrost 进行自动配置。

服务设置

可以在没有其他 OpenStack 服务的情况下使用 Bare Metal 服务。您应该对 /etc/ironic/ironic.conf 进行以下更改

  1. 选择支持独立模式的身份验证策略,一个选项是 noauth

    [DEFAULT]
    auth_strategy=noauth
    

    另一个选项是 http_basic,其中凭据存储在 Apache htpasswd 格式文件中

    [DEFAULT]
    auth_strategy=http_basic
    http_basic_auth_user_file=/etc/ironic/htpasswd
    

    仅支持 bcrypt 格式,并且可以使用 Apache htpasswd 工具用条目填充文件,例如

    htpasswd -nbB myName myPassword >> /etc/ironic/htpasswd
    
  2. 如果您想禁用 Networking 服务,您应该预先配置网络以向您正在部署的机器提供 DHCP 和 TFTP 服务。要禁用它,请更改以下行

    [dhcp]
    dhcp_provider=none
    

    注意

    如果您禁用了 Networking 服务,并且您使用的驱动程序最多只能由一个 conductor 支持,PXE 启动将仍然适用于您的节点,无需手动编辑配置文件。这是因为您知道将用于部署的所有 DHCP 选项,并且可以相应地设置您的 DHCP 服务器。

    如果您有每个驱动程序多个 conductor,最好使用 Networking,因为它将为您完成所有动态更改的配置。

  3. 如果您想禁用 conductor 和 API 进程之间的消息代理,请切换到 JSON RPC

    [DEFAULT]
    rpc_transport = json-rpc
    

    JSON RPC 也有自己的身份验证策略。如果未指定,则策略默认为 [DEFAULT] auth_strategy。以下将 JSON RPC 设置为 noauth

    [json_rpc]
    auth_strategy = noauth
    

    对于 http_basic,conductor 服务器需要一个凭据文件来验证请求

    [json_rpc]
    auth_strategy = http_basic
    http_basic_auth_user_file = /etc/ironic/htpasswd-json-rpc
    

    API 服务器还需要指定客户端凭据

    [json_rpc]
    auth_type = http_basic
    username = myName
    password = myPassword
    
  4. 要使图形控制台可用于本地查看,请设置以下内容,包括控制台镜像的适当容器镜像引用。

    [vnc]
    enabled=True
    port=6090
    host_ip=127.0.0.1
    public_url=http://127.0.0.1:6090/vnc_lite.html
    container_provider=systemd
    console_image=<image reference>
    
  5. 从 Yoga 版本系列开始,您可以使用组合的 API+conductor+novncproxy 服务并完全禁用 RPC。设置

    [DEFAULT]
    rpc_transport = none
    

    并使用 ironic 可执行文件启动组合服务。

    注意

    组合服务也可以在启用 RPC 的情况下工作,这对于某些部署可能很有用,但可能不建议用于所有安全模型。

使用 CLI

要使用 baremetal CLI,请设置以下环境变量。如果正在使用 noauth 身份验证策略,则必须将值 none 设置为 OS_AUTH_TYPE。OS_ENDPOINT 是 ironic-api 进程的 URL。例如

export OS_AUTH_TYPE=none
export OS_ENDPOINT=https://:6385/

如果正在使用 http_basic 身份验证策略,则必须将值 http_basic 设置为 OS_AUTH_TYPE。例如

export OS_AUTH_TYPE=http_basic
export OS_ENDPOINT=https://:6385/
export OS_USERNAME=myUser
export OS_PASSWORD=myPassword