版权声明:本文为博主原创文章,未经博主允许不得转载。 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