Keystone 组件

OpenStack专题链接


Keystone组件提供统一的完整的OpenStack身份验证,服务目录,令牌和访问策略服务。其数据源可以来自SQL、LDAP、Key/Value。大多数使用者会采用定制化的Keystone认证服务,本博客后续将提供一个定制化开发实例。


Keystone服务的配置流程:

  1. 修改配置文件
    // debug和verbose两项建议设置为True,以便保存更多的详细信息
    # vi /etc/keystone/keystone.conf
    admin_token = 
    debug = True
    verbose = True
    connection = mysql://:@/keystone
  1. 创建Keystone数据库,并建立表结构
    # mysql -uroot -p -e "CREATE TABLE keystone"
    # mysql -uroot -p -e "GRANT ALL PRIVILEGES ON keystone.* TO '' @ '' IDENTIFIED BY '';"
    // 初始化表结构
    # keystone-manage db_sync
  1. 启动服务并验证其运行正常
    # service keystone restart
    # service keystone status
    // 有时候配置选项参数不同,服务也可以正常运行,但是使用Keystone的时候会报错,故进一步确认
    # export OS_SERVICE_TOKEN= // /etc/keystone/keystone.conf中制定的token
    # export OS_SERVICE_ENDPOINT=http://://
    # keystone user-list

    上述最后一行命令未报错即标识Keystone服务启动正常。
4. 创建Keystone管理员用户
    Openstack的权限认证采用的是RBAC,所以我们需要分别建立用户组、用户组权限及用户,同时将三者关联起来。

    // 创建一个角色 admin
    keystone role-create --name=admin
    // 创建一个具有管理权限的租户 admin
    keystone tenant-create --name=admin
    // 创建一个用户admin,并设置密码
    keystone user-create --name=admin --pass=""
    // 将上述三者关联起来
    keystone user-role-add --user admin --role admin --tenant admin
  1. 定义Keystone使用的Services和API Endpoints
        Openstack中所有的组件都需要对外提供一个API Endpoints,不同组件之间利用此Endpoint完成服务交互。既然Keystone承担了认证授权的功能,则任何组件都需要将自身提供的服务及对应的Endpoints注册到Keystone中。故,Keystone服务自身也需要注册,参考如下流程:
    // 创建一个Keystone服务
    # keystone service-create --name keystone --type identity --description 'Openstack Identity'
    // 创建一个Keystone API Endpoint
    # keystone endpoint-create --service-id  --publicurl ''
  1. 使用Keystone客户端命令行
    a. token认证 – 适用于Keystone中暂时还未创建管理员权限用户的情况
   // 环境变量
   # export OS_SERVICE_TOKEN=
   # export OS_SERVICE_ENDPOINT=

b. 用户名密码认证 – 一旦建立了管理员权限用户,建议使用此种认证方式

   // 环境变量
   # export OS_TENANT_NAME=admin
   # export OS_USERNAME=admin
   # export OS_PASSWORD=
   # export OS_AUTH_URL=""

    可以将上述需要导入的变量写入一个文件,然后每次使用source file来导入系统环境变量中。

你可能感兴趣的:(云存储)