OpenStack 认证服务 KeyStone连接和用户管理(四)

时间:2023-02-03 22:32:10

连接keystone两种方式:

  • 一种使用命令
  • 一种使用环境变量

1、通过环境变量方式连接keystone(适合在初始化场景使用)

  • 配置认证令牌环境变量
export OS_TOKEN=07081849f55281652dac

备注:07081849f55281652dac这个值与/etc/keystone/keystone.conf配置文件中的admin_token一致

  • 配置连接到keystone的地址
export OS_URL=http://192.168.137.11:35357/v3

设置keystone的admin(35357)端口,v3是用第三个版本

  • 配置认证API版本
export OS_IDENTITY_API_VERSION=3

2、通过命令方式连接keystone(需要在创建域、项目、用户后使用)

openstack --os-auth-url http://192.168.137.11:35357/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin token issue

 

创建域、项目、用户和角色

  • 创建default域
openstack domain create --description "Default Domain" default

OpenStack 认证服务 KeyStone连接和用户管理(四)

提示:--description是域的描述,最后一个是域的名称

  • 创建admin项目
openstack project create --domain default --description "Admin Project" admin

命令格式:openstack project --domain 域 --description "描述" 项目名

作用:管理所有的云主机

OpenStack 认证服务 KeyStone连接和用户管理(四)

  • 创建admin用户
openstack user create --domain default --password-prompt admin

OpenStack 认证服务 KeyStone连接和用户管理(四)

  • 创建admin角色

在一个项目里面有多个角色,我们只能创建在配置文件中设置的角色。

配置文件路径/etc/keystone/policy.json,我们可以在这个文件自定义新的角色。

openstack role create admin

OpenStack 认证服务 KeyStone连接和用户管理(四)

  • 添加admin角色到admin项目和用户上

把admin用户,添加到admin项目,并授权admin的角色

或者可以说:admin项目添加一个admin用户,它的角色是admin

openstack role add --project admin --user admin admin

小结:前三个环境变量是为了连接到keystone上,后面的就是为了创建项目用户角色,给域、项目、用户和角色做了一个关联。

 

demo环境

  • 创建一个demo项目

demo项目就类似于我们去阿里云上注册了一个账号,基本流程跟创建admin是一样的

openstack project create --domain default --description "Demo Project" demo
  • 创建demo用户
openstack user create --domain default --password-prompt demo
  • 创建user角色
openstack role create user
  • 添加user角色到demo项目和用户
openstack role add --project demo --user demo user

 

重要服务与keystone

  • 创建一个service项目 

各个服务(Glance、Nova、Neutron)之间需要去访问keystone,那么访问keystone就需要做认证,就需要我们创建用户,这些用户需要属于一个项目。所以我们要先创建一个service项目,我们还需要给每个项目单独创建一个用户。

openstack project create --domain default --description "Service Project" service
  • 创建glance用户
openstack user create --domain default --password-prompt glance 

授权

openstack role add --project service --user glance admin
  • 创建nova用户
openstack user create --domain default --password-prompt nova

授权

openstack role add --project service --user nova admin
  • 创建neutron用户
openstack user create --domain default --password-prompt neutron

授权

openstack role add --project service --user neutron admin