openstack安装学习(认证服务)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16207577/article/details/78490591

数据库创建

只在controller上执行

# 创建keystone数据库, 并赋予所有权限给keystone用户,可以从任何地方连进来
# 如果有必要的话修改"%"为指定IP地址或网段
# 密码为keystone_password
create database keystone
grant all privileges on keystone.* to 'keystone'@'%' identified by 'keystone_password'

安装keystone

只在controller上执行

  • 使用源安装

    $ apt-get install keystone
  • 修改配置文件/etc/keystone/keystone.conf

    [database]
    
    # +之间不要有空格
    
    
    # 在/etc/hosts文件中添加controller主机名解析,
    
    
    # 例如: "192.168.1.100 controller"
    
    
    # 其中"192.168.1.100"为controller节点的第一张网卡的IP
    
    connection = mysql+pymysql://keystone:keystone_password@controller/keystone
    
    [token]
    
    # token生成方式
    
    
    # uuid: uuid.uuid4().hex, 32字符
    
    
    # 没有加密方式, 需要持久化后端存储,每次访问需要keystone相关服务进行认证
    
    
    
    # pki: base64 编码, 4602字符
    
    
    # CMS加密,可以线下认证,太长,需要受信任的CA证书
    
    
    
    # pkiz: 同pki,使用了压缩技术,长度减一半, 以"PKIZ_"开头
    
    
    
    # fernet: 183字符, 对称加密
    
    provider = fernet
  • 数据库初始化

    $ su -s /bin/sh -c "keystone-manage db_sync" keystone
    
    $ keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    
    $ keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  • 创建超级用户

    
    # ADMIN_PASS 是admin用户的密码
    
    $ keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
      --bootstrap-admin-url http://controller:35357/v3/ \
      --bootstrap-internal-url http://controller:5000/v3/ \
      --bootstrap-public-url http://controller:5000/v3/ \
      --bootstrap-region-id RegionOne
  • apache配置, 修改/etc/apache2/apache2.conf

    ServerName controller
  • 重启apache服务并删除sqlite数据库

    $ service apache2 restart
    $ rm -f /var/lib/keystone/keystone.db
  • 创建admin用户文件(创建/root/openstack/admin.openrc文件, 后面创建user、service、endpoint的时候会用到)

    export OS_USERNAME=admin
    export OS_PASSWORD=ADMIN_PASS
    export OS_PROJECT_NAME=admin
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_AUTH_URL=http://controller:35357/v3
    export OS_IDENTITY_API_VERSION=3
  • 租户(project)、域(domain)、用户(user)、角色(role)创建

    • 租户v3前叫tenant, v3改成project
    • 域(domain)范围最广
    • 一个域(domain)可以包含多个租户(project)
    • 一个租户(project)可以包含多个组(group)
    • 一个组(group)可以包含多个用户(user)
    • 一个用户(user)可以包含多个角色(role)
    $ source /root/openstack/admin.openrc
    • 创建服务租户

      $ openstack project create --domain default --description "Service Project" service
    • 创建普通用户租户

      $ openstack project create --domain default --description "Service Project" demo
    • 创建普通用户

      $ openstack user create --domain default --password-prompt demo
    • 创建普通用户角色

      $ openstack role create user
    • 添加普通用户角色到普通用户

      $ openstack role add --project demo --user demo user

参考列表

keystone几种token生成的方式分析
Openstack Keystone Fernet tokens
Openstack Keystone V3简介
Identity API Operations

猜你喜欢

转载自blog.csdn.net/qq_16207577/article/details/78490591