3.4. 将裸机置备服务(ironic)添加到 control plane


要在 OpenShift (RHOSO)部署的 Red Hat OpenStack Services 上启用裸机置备服务(ironic),您必须将 ironic 服务添加到 control plane 中,并根据需要进行配置。

流程

  1. 在工作站上打开 OpenStackControlPlane 自定义资源(CR)文件 openstack_control_plane.yaml
  2. 将以下 cellTemplates 配置添加到 nova 服务配置中:

      nova:
        apiOverride:
          route: {}
        template:
          ...
          secret: osp-secret
          cellTemplates:
            cell0:
              cellDatabaseAccount: nova-cell0
              hasAPIAccess: true
            cell1:
              cellDatabaseAccount: nova-cell1
              cellDatabaseInstance: openstack-cell1
              cellMessageBusInstance: rabbitmq-cell1
              hasAPIAccess: true
              novaComputeTemplates:
                compute-ironic: 
    1
    
                  computeDriver: ironic.IronicDriver
    Copy to Clipboard Toggle word wrap
    1
    Compute 服务的名称。名称限制为 20 个字符,且只能包含小写字母数字字符和 - 符号。
  3. 启用 ironic 服务并指定要连接的网络:

    spec:
      ...
      ironic:
        enabled: true
        template:
          rpcTransport: oslo
          databaseInstance: openstack
          ironicAPI:
            replicas: 1
            override:
              service:
                internal:
                  metadata:
                    annotations:
                      metallb.universe.tf/address-pool: ctlplane
                      metallb.universe.tf/allow-shared-ip: ctlplane
                      metallb.universe.tf/loadBalancerIPs: 192.168.122.80
                  spec:
                    type: LoadBalancer
          ironicConductors:
          - replicas: 1
            storageRequest: 10G
            networkAttachments:
            - baremetal 
    1
    
            provisionNetwork: baremetal 
    2
    
          ironicInspector:
            replicas: 0 
    3
    
            networkAttachments:
            - baremetal 
    4
    
            inspectionNetwork: baremetal 
    5
    
          ironicNeutronAgent:
            replicas: 1
          secret: osp-secret
    Copy to Clipboard Toggle word wrap
    1
    您为隔离的裸机网络创建的 NetworkAttachmentDefinition CR 的名称,用于为 ironicConductor pod 准备 RHOCP
    2
    3
    您可以在没有 ironicInspector 服务的情况下部署裸机置备服务。要部署该服务,请将 副本数 设置为 1
    4
    您为隔离的裸机网络创建的 NetworkAttachmentDefinition CR 的名称,用于为 ironicInspector pod 为裸机网络准备 RHOCP
    5
    您创建的 Networking 服务(neutron)网络的名称,用作 创建裸机网络 中的检查网络。Ironic Inspector API 侦听端口 5050。
  4. 指定裸机置备服务用于置备、清理、检查和销毁裸机节点的网络:

    spec:
      ...
      ironic:
        ...
          ironicConductors:
          - replicas: 1
            storageRequest: 10G
            networkAttachments:
            - baremetal
            provisionNetwork: baremetal
            customServiceConfig: |
              [neutron]
              cleaning_network = <network_UUID>
              provisioning_network = <network_UUID>
              inspection_network = <network_UUID>
              rescuing_network = <network_UUID>
    Copy to Clipboard Toggle word wrap
  5. 配置 OVN 映射:

      ovn:
        template:
          ovnController:
            ...
            nicMappings: 
    1
    
              datacentre: ocpbr
              baremetal: baremetal
    Copy to Clipboard Toggle word wrap
    1
    将物理网络供应商映射到 NodeNetworkConfigurationPolicy (nncp) CR 中定义的接口名称的键值对列表。
  6. 更新 control plane:

    $ oc apply -f openstack_control_plane.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  7. 等待 RHOCP 创建与 OpenStackControlPlane CR 相关的资源。运行以下命令来检查状态:

    $ oc get openstackcontrolplane -n openstack
    NAME 						STATUS 	MESSAGE
    openstack-control-plane 	Unknown 	Setup started
    Copy to Clipboard Toggle word wrap

    当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。

    提示

    -w 选项附加到 get 命令的末尾,以跟踪部署进度。

  8. 通过查看 openstack 命名空间中的 pod 确认 control plane 已部署:

    $ oc get pods -n openstack
    Copy to Clipboard Toggle word wrap

    当所有 pod 都已完成或运行时,会部署 control plane。

验证

  1. 打开与 OpenStackClient pod 的远程 shell 连接:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  2. 确认内部服务端点已注册到每个服务:

    $ openstack endpoint list -c 'Service Name' -c Interface -c URL --service ironic
    +--------------+-----------+---------------------------------------------------------------+
    | Service Name | Interface | URL                                                           |
    +--------------+-----------+---------------------------------------------------------------+
    | ironic       | internal  | http://ironic-internal.openstack.svc:9292                     |
    | ironic       | public    | http://ironic-public-openstack.apps.ostest.test.metalkube.org |
    +--------------+-----------+---------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  3. 退出 openstackclient pod:

    $ exit
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat