为 Bare Metal 服务配置 Identity 服务

  1. 创建 Bare Metal 服务用户(例如,ironic)。该服务使用此用户向 Identity 服务进行身份验证。使用 service tenant,并赋予用户 admin 角色

    $ openstack user create --password IRONIC_PASSWORD \
        --email ironic@example.com ironic
    $ openstack role add --project service --user ironic admin
    
  2. 您必须在 Identity 服务中注册 Bare Metal 服务,以便其他 OpenStack 服务可以找到它。要注册该服务

    $ openstack service create --name ironic --description \
        "Ironic baremetal provisioning service" baremetal
    
  3. 使用从 Identity 服务注册服务时返回的 id 属性来创建端点,并将 IRONIC_NODE 替换为您的 Bare Metal 服务的 API 节点

    $ openstack endpoint create --region RegionOne \
        baremetal admin http://$IRONIC_NODE:6385
    $ openstack endpoint create --region RegionOne \
        baremetal public http://$IRONIC_NODE:6385
    $ openstack endpoint create --region RegionOne \
        baremetal internal http://$IRONIC_NODE:6385
    
  4. 您可以通过使用 OpenStack Identity 服务创建角色来委派与 Bare Metal 服务相关的有限权限给您的用户。默认情况下,Bare Metal 服务期望存在“baremetal_admin”和“baremetal_observer”角色,除了默认的“admin”角色之外。如果您选择不创建这些角色,不会产生任何负面影响。可以使用以下命令创建它们

    $ openstack role create baremetal_admin
    $ openstack role create baremetal_observer
    

    如果您选择自定义与 Bare Metal 服务一起使用的角色名称,请通过更改 /etc/ironic/policy.yaml 中的“is_member”、“is_observer”和“is_admin”策略设置来执行此操作。

    关于管理 OpenStack 部署中的用户和角色的更完整文档不在本文档的范围内,但可以在 此处 找到。

  5. 您可以通过创建一个单独的“baremetal”项目来进一步限制对 Bare Metal 服务的访问,以便 Bare Metal 资源(节点、端口等)仅可供该项目成员访问

    $ openstack project create baremetal
    

    此时,您可以通过发出以下命令来授予对 Bare Metal 服务 API 的只读访问权限,而无需授予任何其他访问权限

    $ openstack user create \
        --domain default --project-domain default --project baremetal \
        --password PASSWORD USERNAME
    $ openstack role add \
        --user-domain default --project-domain default --project baremetal \
        --user USERNAME baremetal_observer
    
  6. 有关 openstack 命令行客户端Identity 服务的更多文档可在其他地方找到。Bare Metal 服务为您提供了方便的 policy.yaml.sample 文件,其中列举了服务的默认策略。