OpenStack-MitakaCentos7.2双节点搭建--(二)Keystone(认证服务)
OpenStack-Mitaka版本Keystone服务
一,创建数据库
用数据库连接客户端以 root 用户连接到数据库服务器:
#mysql -u root -p000000 #这里的6个0是你之前设置的密码,请用你自己设置的密码进行代替

创建 keystone 数据库:
CREATE DATABASE keystone; #可以使用小写

对keystone数据库授予恰当的权限:
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';

注意:mysql中每句话使用分号进行结尾 “ ; ”
**KEYSTONE_DBPASS **用自己想设置的密码进行代替 例如 000000
exit #退出

2. 生成一个随机的管理员令牌,也就是token
#openssl rand -hex 10

二、安装keystone服务
#yum -y install openstack-keystone httpd mod_wsgi

编辑文件 /etc/keystone/keystone.conf 添加或者修改部分内容:
首先在[DEFAULT]添加admin_token
admin_token=3befc4b19e052e590ad8

在[database]部分添加数据库连接
connection = mysql+pymysql://keystone:000000@controller/keystone

配置provider:
在[token]添加如下内容
provider = fernet

2、初始化身份认证服务的数据库:
su -s /bin/sh -c "keystone-manage db_sync" keystone

正常同步成功是比较慢的,无返回值
验证数据库是否同步成功:
进入mysql
mysql -uroot -p000000
use keystone;

show tables;

exit #退出数据库
如果验证操作为出错,那你是成功同步了,如果不是上述结果,应该是错了,可以查看我的博客keystone错误
初始化Fernet keys:
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

无返回值
三 、配置 Apache HTTP 服务器
编辑/etc/httpd/conf/httpd.conf 文件,配置ServerName 选项为控制节点:
vi /etc/httpd/conf/httpd.conf
ServerName controller
去掉原有的#注释符和 www.example.com:80
或者直接添加
ServerName controller

2,将/opt/mitaka 目录下的 wsgi-keystone.conf 配置文件复制到 /etc/httpd/conf.d/下

3,启动 Apache HTTP 服务并配置其随系统启动
#systemctl enable httpd.service
#systemctl start httpd.service
四、创建服务实体和API端点
1、
配置认证令牌:export OS_TOKEN=3befc4b19e052e590ad8
配置端点URL:export OS_URL=http://controller:35357/v3
配置认证 API 版本:export OS_IDENTITY_API_VERSION=3
2、
**创建服务实体和身份认证服务**:
1、为Keystone本身创建服务
openstack service create --name keystone --description "OpenStack Identity" identity

1、创建公共端点:
openstack endpoint create --region RegionOne identity public http://controller:5000/v3

2、创建外部端点:
openstack endpoint create --region RegionOne identity internal http://controller:5000/v3

3、创建管理端点:
openstack endpoint create --region RegionOne identity admin http://controller:35357/v3

五、创建域(domain)、项目(Project)、用户(user)和角色(role)
1、创建默认域:
openstack domain create --description "Default Domain" default

2、创建admin的项目:
openstack project create --domain default --description "Admin Project" admin

3、创建admin的用户:
openstack user create --domain default --password-prompt admin
我这里设置的密码是 000000
4、创建admin的角色:
openstack role create admin

5、添加admin 角色到 admin 项目和用户上
openstack role add --project admin --user admin admin

无返回值
6、创建service项目:
openstack project create --domain default --description "Service Project" service

7、创建demo 项目:
openstack project create --domain default --description "Demo Project" demo

8、创建demo 用户:
openstack user create --domain default --password-prompt demo

9、创建 user 角色:
openstack role create user

10、添加 user角色到demo 项目和用户:
openstack role add --project demo --user demo user

无返回值
六、验证Keystone服务
1、重置OS_TOKEN和OS_URL 环境变量::
unset OS_TOKEN OS_URL

2、作为 admin 用户,请求认证令牌:
密码为之前设置的 000000
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

3、作为demo 用户,请求认证令牌:
密码为之前设置的 000000
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

(3)清除环境变量
#unset OS_TOKEN OS_URL
七、创建 OpenStack 客户端环境脚本
1、写入环境变量
在 “~” 目录下 创建 admin-openrc 文件:


在 “~” 目录下 创建 demo-openrc 文件:


2、生效并验证:
. admin-openrc 无返回值

. demo-openrc 无返回值

请求认证令牌:
openstack token issue


浙公网安备 33010602011771号