openstack 笔记 (四) keystore部署

1.KeyStone功能介绍

KeyStone主要有两个功能:用户管理和服务目录

用户管理主要包括:认证和授权

认证方式有四种:即token令牌、账号和密码、服务目录、策略

认证核心术语

用户相关:

User:能使用OpenStack服务的一个用户

Project:之前交Tenant(租户),是组件服务的一种资源隔离方式

Role:角色,是User访问指定Project资源的一种权限

Token:令牌,一个综合的加密认证信息

使用方式:给一个User赋予在指定Project中一个资源访问的Role角色。

服务目录相关:

Service:OpenStack各组件提供的服务,用于用户访问

Endpoint:用户访问Service的一个url链接入口

KeyStone配置信息

配置文件:/etc/keystone/keystone.conf

日志文件:/var/log/keystone/keystone.log

2.KeyStone部署

在OpenStack中,任何组件的基本上都按照数据库配置、软件安装、软件配置、数据同步、http配置、权限设置这六个方面来操作。

  • 数据库配置

连接并创建数据库

mysql -u root -p root
CREATE DATABASE keystone;
复制代码

配置权限

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
-- 将keystone用户密码设置为keystone

复制代码
  • 软件安装

yum install -y openstack-keystone httpd mod_wsgi

  • 编辑配置文件

vim /etc/keystone/keystone.conf

[DEFAULT]
#连接到消息队列
405 transport_url = rabbit://openstack:openstack@192.168.188.100:5672
[database]
#数据库配置连接控制节点的认证地址
661 connenction = mysql+pymysql://keystone:keystone@192.168.188.100/keystone
[token]
#配置token令牌的提供者,取消注释即可
2758 provider = fernet
复制代码

检查修改信息

[root@controller keystone]# grep -ni '^[a-Z]' /etc/keystone/keystone.conf

  • 初始化信息

同步数据库信息

su -s /bin/sh -c "keystone-manage db_sync" keystone
复制代码

初始化keystone的认证信息

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
复制代码

生成openstack管理admin账户的api信息

Queen版本的admin用户和普通用户都使用5000端口连接,而之前版本admin用户使用35357端口。这里一定要注意,否则会直接导致后面的组件无法部署。

# keystone-manage bootstrap --bootstrap-password admin  
  --bootstrap-admin-url http:// controller:5000/v3/  
  --bootstrap-internal-url http:// controller:5000/v3/  
  - bootstrap-public-url http:// controller:5000 /v3/ 
  --bootstrap-region-id RegionOne
复制代码
  • 配置http服务

编辑配置文件

# vim /etc/httpd/conf/httpd.conf
ServerName 192.168.188.100:80
复制代码

创建连接文件

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

启动http服务,并设置开机启动

systemctl enable httpd.service
systemctl start httpd.service
复制代码
  • 权限配置

配置用户信息

$ export OS_USERNAME=admin
$ export OS_PASSWORD=admin
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:5000/v3
$ export OS_IDENTITY_API_VERSION=3
复制代码

1.创建项目

命令格式:openstack project create --domain default --description "描述" <项目名>

创建service项目

openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
复制代码

检查效果

openstack project list

2.创建demo用户,即普通用户

命令格式:openstack user create --domain default --password <密码> <用户名>

openstack user create --domain default --password demo demo
复制代码

3.创建role角色

命令格式:openstack role create <role名>

openstack role create user
复制代码

4.给demo用户赋予在指定Project(即"Demo Project")中一个资源访问的Role角色(即user)

命令格式:openstack role add --project <项目名> --user <用户名> <角色组>

openstack role add --project demo --user demo user
复制代码

3.认证效果

  • 效果测试

取消环境变量

unset OS_AUTH_URL OS_PASSWORD

用户验证

命令格式:

openstack --os-auth-url http://controller:5000/v3 
--os-project-domain-name Default --os-user-domain-name Default 
--os-project-name <项目> --os-username <用户> --os-password <密码> token issue
复制代码

使用admin验证

openstack --os-auth-url http://controller:5000/v3 
--os-project-domain-name Default --os-user-domain-name Default 
--os-project-name admin --os-username admin --os-password admin token issue
复制代码

使用demo用户验证

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 --os-password demo token issue
复制代码
  • 创建环境变量脚本来自动设置用户环境变量

创建admin用户的变量脚本

#vim admin-openstack.sh
export OS_PROJECT_DOMIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
复制代码
openstack token issue
复制代码

创建demo用户的变量脚本



原文地址:https://www.cnblogs.com/well-666/p/12151572.html