vagrant+centos7+openstackN版配置(三)身份认证服务

建立数据库

cotroller节点上

mysql -u root -p

登录到数据库后新建一个keystone数据库,并将这个数据库的所有权限都赋给用户keystone,认证密码设置为123

mysql>CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123';
mysql>GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123';

安装配置keystone

controller节点上

yum install openstack-keystone httpd mod_wsgi

编辑/etc/keystone/keystone.conf
在[database]部分配置数据库信息

[database]
...
connection = mysql+pymysql://keystone:123@controller/keystone

配置token的生成模式

[token]
...
provider = fernet

将keystone当前信息同步到数据库

/bin/sh -c "keystone-manage db_sync" keystone

初始化fernet的key仓库

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

配置服务访问路径,其中123是自定义的keystone管理员密码

keystone-manage bootstrap --bootstrap-password 123 \
  --bootstrap-admin-url http://controller:35357/v3/ \
  --bootstrap-internal-url http://controller:35357/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

配置apache服务

打开/etc/httpd/conf/httpd.conf修改ServerName

ServerName controller

建立链接,如果已经存在则跳过

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

开机启动并开启apache服务

systemctl enable httpd.service
systemctl start httpd.service

将下列环境变量导入到当前bash,这些变量是为了缩短即将要使用的keystone命令,减少参数的键入,其中keystone是keystone管理员密码。

export OS_USERNAME=admin
export OS_PASSWORD=123
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

(为了操作简便可以将这些命令写入一个脚本文件并赋予可执行权限,以后将要多次使用这些环境变量。)

openstack创建域名,工程,用户和角色

这一套操作建立了域名default,工程demo,用户demo并把demo添加到角色user里。

openstack project create --domain default \
  --description "Service Project" service
openstack project create --domain default \
  --description "Demo Project" demo
openstack user create --domain default \
  --password-prompt demo
openstack role create user
openstack role add --project demo --user demo user

结尾操作

取消临时认证token机制,编辑/etc/keystone/keystone-paste.ini,在[pipeline:public_api], [pipeline:admin_api], and [pipeline:api_v3]条目下删除admin_token_auth。
取消环境变量,改为自己键入

unset OS_AUTH_URL OS_PASSWORD

为admin用户申请一个认证token

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

输入admin密码继续。
为demo用户申请一个认证token

openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name demo --os-username demo token issue

输入demo密码继续。

为了方便,分别为admin用户和demo用户建立环境变量脚本

#!/bin/bash
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
#!/bin/bash
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=123
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

运行

openstack token issue

可以看到fernet为admin用户生成的token。

你可能感兴趣的:(vagrant+centos7+openstackN版配置(三)身份认证服务)