为 Bare Metal 服务配置 Identity 服务¶
创建 Bare Metal 服务用户(例如,
ironic)。该服务使用此用户向 Identity 服务进行身份验证。使用servicetenant,并赋予用户admin角色$ openstack user create --password IRONIC_PASSWORD \ --email ironic@example.com ironic $ openstack role add --project service --user ironic admin
您必须在 Identity 服务中注册 Bare Metal 服务,以便其他 OpenStack 服务可以找到它。要注册该服务
$ openstack service create --name ironic --description \ "Ironic baremetal provisioning service" baremetal
使用从 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
您可以通过使用 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 部署中的用户和角色的更完整文档不在本文档的范围内,但可以在 此处 找到。
您可以通过创建一个单独的“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
有关
openstack命令行客户端 和 Identity 服务的更多文档可在其他地方找到。Bare Metal 服务为您提供了方便的 policy.yaml.sample 文件,其中列举了服务的默认策略。