1.4. 为裸机置备配置 Compute 节点


以下说明 只适用于 还运行裸机置备服务的 Compute 节点。您需要以 root 用户身份在 Compute 节点上执行这些步骤。

在 Compute 节点上,您有裸机置备 NIC,如 eth6。此流程的目标如下:

  1. 要将裸机 Provisioning NIC ( 本例中为 eth6) 连接到 Open vSwitch。
  2. 要在这个连接上分配 IP 地址,因为裸机服务器需要在 iPXE 过程中从裸机节点中拉取引导镜像。

eth6 连接到 Open vSwitch

  1. 第 1.3 节 “为裸机置备服务配置 Controller 节点” 中的 Controller 节点一样,在运行裸机置备服务的 Compute 节点上创建一个桥接:

    # ovs-vsctl add-br br-ironic
    # ovs-vsctl add-port br-ironic IRONIC_PROVISIONING_NIC
    Copy to Clipboard Toggle word wrap

    在这里,br-ironic 是网桥的名称,IRONIC_PROVISIONING NIC 是连接到裸机置备网络的 NIC,如 eth6

    注意

    此和 第 1.3 节 “为裸机置备服务配置 Controller 节点” 之间的唯一区别在于您不会在 Compute 节点上重启 OpenStack 网络服务。

    这会将网桥和端口添加到 Open vSwitch,您可以使用 ovs-vsctl show 命令来验证。但是,它不会将它连接到集成网桥(br-int),供 OpenStack 使用。

  2. 要创建连接,您需要更新 OpenStack 网络插件文件,如下所示:

    1. 更新 ML2 配置文件 /etc/neutron/plugins/ml2/ml2_conf.ini,如下所示:

      • 对于 type_drivers 参数,请确保在驱动程序中列出了 flat,例如 type_drivers = vxlan,vlan,flat,gre。这是以逗号分隔的列表。
      • 对于 mechanism_drivers 参数,请确保 openvswitch 选项列在驱动程序中,例如 mechanism_drivers =openvswitch。这是以逗号分隔的列表。
      • 对于 flat_networks 参数,创建一个名称来引用裸机置备网络,如 ironicnet。确保此名称列在列出的 flat_networks 中,如 flat_networks =datacentre,ironicnet。这是以逗号分隔的列表。
      • 如果您将 VLAN 用于裸机置备网络,请添加 network_vlan_ranges 参数,其格式为: ironicnet:VLAN_START:VLAN_END,如 network_vlan_ranges =datacentre:1:1000。这是以逗号分隔的列表。
      • enable_security_group 参数应该已经启用。但是,如果没有设置,请将值更改为 True,例如 enable_security_group = True
    2. /etc/neutron/plugins/ml2/openvswitch_agent.ini 文件中,找到 bridge_mappings 参数并更新如下:

      bridge_mappings =datacentre:br-ex,ironicnet:br-ironic
      Copy to Clipboard Toggle word wrap

      此逗号分隔的键值对的值将裸机置备网络的名称映射到连接到网络的物理设备。

  3. 重启 OpenStack 网络 Open vSwitch 代理服务:

    # systemctl restart neutron-openvswitch-agent.service
    Copy to Clipboard Toggle word wrap

现在,您已从此流程中实现了您的第一个目标。接下来,您需要为 br-ironic 网桥分配一个 IP 地址,并确保它在重启后保留。

为裸机服务器分配 IP 地址

  1. /etc/sysconfig/network-scripts 位置创建标准配置文件。您可以复制租户网络中已可用的 ifcfg* 文件,并编辑以下值: deviceipaddrovs_bridge、网桥名称和 MAC 地址,用于 br-ironiceth6。当您完成更新新文件后,它们应具有以下值:

    ifcfg-br-ironic

    DEVICE=br-ironic
    ONBOOT=yes
    HOTPLUG=no
    NM_CONTROLLED=no
    PEERDNS=no
    DEVICETYPE=ovs
    TYPE=OVSBridge
    BOOTPROTO=static
    IPADDR=BARE_METAL_PROVISIONING_IP
    NETMASK=255.255.255.0
    OVS_EXTRA="set bridge br-ironic other-config:hwaddr=MAC_ADDRESS"
    Copy to Clipboard Toggle word wrap

    ifcfg-eth6

    DEVICE=eth6
    ONBOOT=yes
    HOTPLUG=no
    NM_CONTROLLED=no
    PEERDNS=no
    DEVICETYPE=ovs
    TYPE=OVSPort
    OVS_BRIDGE=br-ironic
    BOOTPROTO=none
    Copy to Clipboard Toggle word wrap
  2. 重新启动网桥,使您的 IP 地址可以 ping 通。

    # ifup br-ironic
    Copy to Clipboard Toggle word wrap
    注意

    如果您在重启网络服务时从节点断开连接,请重新引导服务器。

1.4.1. 订阅所需的频道

要安装裸机置备软件包,您必须使用 Red Hat Subscription Manager 注册服务器或服务器,并订阅所需的频道。如果要在计算节点上安装裸机置备,您的服务器可能已经适当订阅。运行 yum repolist 以检查以下流程中的频道是否已启用。

订阅所需的频道

  1. 使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:

    # subscription-manager register
    Copy to Clipboard Toggle word wrap
  2. 找到包含安装裸机置备所需的频道的权利池:

    # subscription-manager list --available | grep -A13 "Red Hat Enterprise Linux Server"
    # subscription-manager list --available | grep -A13 "Red Hat OpenStack Platform"
    Copy to Clipboard Toggle word wrap
  3. 使用上一步中的池标识符来附加 Red Hat Enterprise Linux 7 服务器和 Red Hat OpenStack Platform 权利:

    # subscription-manager attach --pool=POOL_ID
    Copy to Clipboard Toggle word wrap
  4. 启用所需的频道:

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-openstack-8-rpms \
    --enable=rhel-7-server-rh-common-rpms --enable=rhel-7-server-optional-rpms \
    --enable=rhel-7-server-openstack-8-optools-rpms
    Copy to Clipboard Toggle word wrap

1.4.2. 安装裸机置备软件包

裸机置备需要以下软件包:

openstack-ironic-api

提供裸机置备 API 服务。

openstack-ironic-conductor

提供裸机置备编排器服务。编排器允许添加、编辑和删除节点,使用 IPMI 或 SSH 打开或关闭节点,以及置备、部署和停用裸机节点。

python-ironicclient

提供用于与裸机置备服务交互的命令行界面。

安装软件包:

# yum install openstack-ironic-api openstack-ironic-conductor python-ironicclient ipxe-bootimgs
Copy to Clipboard Toggle word wrap

1.4.3. 配置 iPXE

  1. 为 iPXE、map-files 创建所需的目录,并将 undionly.kpxe 引导镜像、iPXE 和 map-file 复制到位:

    # mkdir /httpboot
    # mkdir /tftpboot
    # echo 'r ([/]) /tftpboot/\1' > /tftpboot/map-file
    # echo 'r ^(/tftpboot/) /tftpboot/\2' >> /tftpboot/map-file
    # cp /usr/share/ipxe/undionly.kpxe /tftpboot/
    # chown -R ironic:ironic /httpboot
    # chown -R ironic:ironic /tftpboot
    Copy to Clipboard Toggle word wrap
  2. 默认情况下,director 部署的 Compute 节点以 Enforcing 模式运行 SELinux。为了避免在尝试 iPXE 引导时获得权限错误,请确保在这些目录中设置适当的标签。要应用这些标签,请以 root 用户身份运行以下命令:

    # semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?"
    # restorecon -Rv /httpboot
    # semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?"
    # restorecon -Rv /tftpboot
    Copy to Clipboard Toggle word wrap
  3. 配置 HTTP,以便它可以提供镜像的请求。httpd 软件包已经安装,因此创建适当的虚拟主机条目并启动服务至关重要。

    注意

    /etc/httpd/conf.d 包含多个文件。由于红帽将单个 overcloud 完整镜像用于所有节点,因此它将在所有节点上包括这些文件,即使它仅在 Controller 节点上使用。您可以删除 /etc/httpd/conf.d 的内容,或者在其它位置复制它们,因为它们没有被使用。

    在 中为 iPXE 配置创建一个新文件。您可以命名此文件,确保该文件采用 .conf 格式,并包含以下内容:

    # cat 10-ipxe_vhost.conf
    Listen 8088
    <VirtualHost *:8088>
        DocumentRoot "/httpboot"
        <Directory "/httpboot">
            Options Indexes FollowSymLinks
            AllowOverride None
            Order allow,deny
            Allow from all
            Require all granted
        </Directory>
    
        ## Logging
        ErrorLog "/var/log/httpd/ironic_error.log"
        ServerSignature Off
        CustomLog "/var/log/httpd/ironic_access.log" combined
    </VirtualHost>
    Copy to Clipboard Toggle word wrap

    以上虚拟主机配置将 HTTPD 配置为在端口 8088 上列出的所有地址,并为该端口的所有请求设置文档根目录以转至 /httpboot

  4. 保存此文件并在 Compute 节点上启用和重启 HTTPD 服务:

    # systemctl enable httpd.service
    # systemctl start httpd.service
    Copy to Clipboard Toggle word wrap

1.4.4. 配置裸机置备服务

在本节中,您将对 /etc/ironic/ironic.conf 文件进行必要的更改。

1.4.4.1. 配置裸机置备与数据库服务器的比较

设置连接配置键的值:

# openstack-config --set /etc/ironic/ironic.conf \
database connection mysql+pymysql://ironic:PASSWORD@IP/ironic
Copy to Clipboard Toggle word wrap

在这里,PASSWORD 是数据库服务器的密码,IP 是数据库服务器的 IP 地址或主机名。

重要

在连接配置密钥中指定的 IP 地址或主机名必须与在 第 1.3.1 节 “创建裸机置备数据库” 中创建裸机置备数据库时为裸机置备数据库被授予访问权限的 IP 地址或主机名匹配。此外,如果数据库托管在本地,并且您在创建数据库时为 localhost 授予权限,则必须输入 localhost

1.4.4.2. 配置裸机置备身份验证

配置裸机置备以使用 Identity 进行身份验证。此流程中的所有步骤都必须在托管裸机置备的服务器或服务器上执行,同时以 root 用户身份登录。

配置裸机置备以通过身份认证

  1. 设置裸机置备必须使用的 Identity public 和 admin 端点:

    # openstack-config --set /etc/ironic/ironic.conf \
       keystone_authtoken auth_uri http://IP:5000/v2.0
    # openstack-config --set /etc/ironic/ironic.conf \
       keystone_authtoken identity_uri http://IP:35357/
    Copy to Clipboard Toggle word wrap

    使用身份服务器的 IP 地址或主机名替换 IP。

  2. 设置裸机置备以作为 服务 租户进行身份验证:

    # openstack-config --set /etc/ironic/ironic.conf \
       keystone_authtoken admin_tenant_name service
    Copy to Clipboard Toggle word wrap
  3. 设置裸机置备,以使用 ironic 管理用户帐户进行身份验证:

    # openstack-config --set /etc/ironic/ironic.conf \
       keystone_authtoken admin_user ironic
    Copy to Clipboard Toggle word wrap
  4. 设置裸机置备,以使用正确的 ironic 管理用户帐户密码:

    # openstack-config --set /etc/ironic/ironic.conf \
       keystone_authtoken admin_password PASSWORD
    Copy to Clipboard Toggle word wrap

    PASSWORD 替换为创建 ironic 用户时设定的密码。

1.4.4.3. 为裸机置备配置 RabbitMQ 消息代理设置

RabbitMQ 是默认的(和推荐)消息代理。RabbitMQ 消息传递服务由 rabbitmq-server 软件包提供。以下流程中的所有步骤都必须在 Controller 或 Compute 节点上执行,同时以 root 用户身份登录。

此流程假设 RabbitMQ 消息传递服务已经安装并配置,并且托管消息传递服务的服务器上已创建了 ironic 用户和相关密码。

配置裸机置备以使用 RabbitMQ 消息代理

  1. 将 RabbitMQ 设置为 RPC 后端:

    # openstack-config --set /etc/ironic/ironic.conf \
       DEFAULT rpc_backend ironic.openstack.common.rpc.impl_kombu
    Copy to Clipboard Toggle word wrap
  2. 设置裸机置备以连接到 RabbitMQ 主机:

    # openstack-config --set /etc/ironic/ironic.conf \
       oslo_messaging_rabbit rabbit_host RABBITMQ_HOST
    Copy to Clipboard Toggle word wrap

    RABBITMQ_HOST 替换为托管消息代理的服务器的 IP 地址或主机名。

  3. 将消息代理端口设置为 5672 :

    # openstack-config --set /etc/ironic/ironic.conf \
       oslo_messaging_rabbit rabbit_port 5672
    Copy to Clipboard Toggle word wrap
  4. 在配置了 RabbitMQ 时,设置为裸机置备创建的 RabbitMQ 用户名和密码:

    # openstack-config --set /etc/ironic/ironic.conf \
       oslo_messaging_rabbit rabbit_userid guest
    # openstack-config --set /etc/ironic/ironic.conf \
       oslo_messaging_rabbit rabbit_password RABBIT_GUEST_PASSWORD
    Copy to Clipboard Toggle word wrap

    RABBIT_GUEST_PASSWORD 替换为 guest 用户的 RabbitMQ 密码。

  5. 启动 RabbitMQ 后,guest 用户被授予对所有资源的读写权限:特别是通过虚拟主机。配置裸机置备以连接到此虚拟主机:

    # openstack-config --set /etc/ironic/ironic.conf \
       oslo_messaging_rabbit rabbit_virtual_host /
    Copy to Clipboard Toggle word wrap

1.4.4.4. 配置裸机置备驱动程序

裸机置备支持多个驱动程序,用于部署和管理裸机服务器。有些驱动程序有硬件要求,且需要额外的配置或软件包安装。详情请查看 附录 A, 裸机置备驱动程序。驱动程序的前半名称指定其部署方法(如 PXE),第二个半指定其电源管理方法(如 IPMI)。

配置裸机置备驱动程序

  1. 指定用于置备裸机服务器的驱动程序或驱动程序。使用以逗号分隔的列表指定多个驱动程序:

    # openstack-config --set /etc/ironic/ironic.conf \
       DEFAULT enabled_drivers DRIVER1,DRIVER2
    Copy to Clipboard Toggle word wrap

    支持以下驱动程序:

    • 带有 PXE 部署的 IPMI

      • pxe_ipmitool
    • 具有 PXE 部署的 DRAC

      • pxe_drac
    • 带有 PXE 部署的 iLO

      • pxe_ilo
    • 具有 PXE 部署的 SSH

      • pxe_ssh
    • iRMC 使用 PXE

      • pxe_irmc
  2. 重启裸机编排器服务:

    # systemctl restart openstack-ironic-conductor.service
    Copy to Clipboard Toggle word wrap

1.4.4.5. 将裸机置备服务配置为使用 PXE

  1. 将裸机置备服务设置为使用 PXE 模板:

    # openstack-config --set /etc/ironic/ironic.conf \
    pxe pxe_config_template \$pybasedir/drivers/modules/ipxe_config.template
    Copy to Clipboard Toggle word wrap
  2. 将裸机置备服务设置为使用 tftp_server

    # openstack-config --set /etc/ironic/ironic.conf \
    pxe tftp_server BARE_METAL_PROVISIONING_NETWORK_IP
    Copy to Clipboard Toggle word wrap
  3. 设置 PXE tftp_root

    # openstack-config --set /etc/ironic/ironic.conf \
    pxe tftp_root /tftpboot
    Copy to Clipboard Toggle word wrap
  4. 设置 PXE 引导文件名:

    # openstack-config --set /etc/ironic/ironic.conf \
    pxe pxe_bootfile_name undionly.kpxe
    Copy to Clipboard Toggle word wrap
  5. 启用裸机置备服务以使用 iPXE:

    # openstack-config --set /etc/ironic/ironic.conf \
    pxe ipxe_enabled true
    Copy to Clipboard Toggle word wrap
  6. http 服务器设置 URL:

    # openstack-config --set /etc/ironic/ironic.conf deploy http_url http://BARE_METAL_PROVISIONING_IP:8088
    Copy to Clipboard Toggle word wrap
  7. 重启裸机编排器服务:

    # systemctl restart openstack-ironic-conductor.service
    Copy to Clipboard Toggle word wrap

裸机调配使用 OpenStack 网络进行 DHCP 和网络配置,并使用镜像服务来管理用于启动物理计算机的镜像。配置裸机置备以连接到 OpenStack 网络和镜像服务并进行通信。此流程中的所有步骤都必须在托管裸机置备的服务器上执行,同时以 root 用户身份登录。

配置裸机置备以与 OpenStack 网络和 OpenStack 镜像比较

  1. 设置裸机置备以使用 OpenStack 网络端点:

    # openstack-config --set /etc/ironic/ironic.conf \
       neutron url http://NEUTRON_IP:9696
    Copy to Clipboard Toggle word wrap

    NEUTRON_IP 替换为托管 OpenStack 网络的服务器的 IP 地址或主机名。

  2. 设置裸机置备以与镜像服务通信:

    # openstack-config --set /etc/ironic/ironic.conf \
       glance glance_host GLANCE_IP
    Copy to Clipboard Toggle word wrap

    使用托管镜像服务的服务器的 IP 地址或主机名替换 GLANCE_IP

  3. 启动裸机置备 API 服务,并将其配置为在引导时启动:

    # systemctl start openstack-ironic-api.service
    # systemctl enable openstack-ironic-api.service
    Copy to Clipboard Toggle word wrap
  4. 创建裸机置备数据库表:

    # ironic-dbsync --config-file /etc/ironic/ironic.conf create_schema
    Copy to Clipboard Toggle word wrap
  5. 启动裸机置备编排器服务,并将其配置为在引导时启动:

    # systemctl restart openstack-ironic-conductor.service
    # systemctl enable openstack-ironic-conductor.service
    Copy to Clipboard Toggle word wrap

1.4.5. 配置 OpenStack Compute 以使用裸机置备服务

在本节中,您将更新 /etc/nova/nova.conf 文件,以将 Compute 服务配置为使用裸机置备服务:

配置 OpenStack Compute 以使用裸机置备

  1. 将 Compute 设置为使用集群计算管理器:

    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT compute_manager ironic.nova.compute.manager.ClusteredComputeManager
    Copy to Clipboard Toggle word wrap
  2. 将虚拟 RAM 设置为物理 RAM 分配比率:

    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT ram_allocation_ratio 1.0
    Copy to Clipboard Toggle word wrap
  3. 设置要为主机保留的磁盘空间量(以 MB 为单位):

    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT reserved_host_memory_mb 0
    Copy to Clipboard Toggle word wrap
  4. 设置 Compute 以使用裸机置备驱动程序:

    # openstack-config --set /etc/nova/nova.conf \
       DEFAULT compute_driver nova.virt.ironic.IronicDriver
    Copy to Clipboard Toggle word wrap
  5. 设置 Compute 以为裸机置备使用正确的身份验证详情:

    # openstack-config --set /etc/nova/nova.conf \
       ironic admin_username ironic
    # openstack-config --set /etc/nova/nova.conf \
       ironic admin_password PASSWORD
    # openstack-config --set /etc/nova/nova.conf \
       ironic admin_url http://IDENTITY_IP:35357/v2.0
    # openstack-config --set /etc/nova/nova.conf \
       ironic admin_tenant_name service
    # openstack-config --set /etc/nova/nova.conf \
       ironic api_endpoint http://IRONIC_API_IP:6385/v1
    Copy to Clipboard Toggle word wrap

    替换以下值:

    • PASSWORD 替换为裸机置备用来与身份进行身份验证的密码。
    • IDENTITY_IP 替换为托管身份的服务器的 IP 地址或主机名。
    • IRONIC_API_IP 替换为托管裸机置备 API 服务的服务器的 IP 地址或主机名。
  6. 重启 Compute 控制器节点上的 Compute 调度程序服务:

    # systemctl restart openstack-nova-scheduler.service
    Copy to Clipboard Toggle word wrap
  7. 重启计算节点上的 compute 服务:

    # systemctl restart openstack-nova-compute.service
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部