【N版】openstack——认证服务keystone

一.keystone介绍

1.1keystone

Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理。

用户认证:用户权限与用户行为跟踪

服务目录:提供一个服务目录,包括所有服务项与相关API的端点

主要涉及如下概念:

User:   用户

Project:项目(老版本中tenant:租户)

Token:  令牌

Role:   角色

1.2keystone配置

1.2.1创建库及用户

注:在这里为了方便,提前把之后要创建的库,以及用户和授权,都做好

[root@linux-node1 ~]# mysql -uroot –p              <- 登陆数据库 ->

MariaDB [(none)]>  create database keystone;           <- 创建keystone库 ->

MariaDB [(none)]> grant all privileges on keystone.*to keystone@'localhost' identified by 'keystone';                            <- 创建keystone用户 ->

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on keystone.*to keystone@'%' identified by 'keystone';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database glance;            <- 创建glance库 ->

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on glance.* toglance@'localhost' identified by 'glance';

Query OK, 0 rows affected (0.00 sec)               <- 创建glance用户 ->

MariaDB [(none)]> grant all privileges on glance.* toglance@'%' identified by 'glance';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database nova;              <- 创建nova库 ->

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nova.* tonova@'%' identified by 'nova';

Query OK, 0 rows affected (0.00 sec)                <- 创建nova用户 ->

MariaDB [(none)]> grant all privileges on nova.* tonova@'localhost' identified by 'nova';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database nova_api;            <- 创建nova_api库 ->

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nova_api.*to 'nova'@'localhost' identified by 'nova';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nova_api.*to 'nova'@'%' identified by 'nova';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database neutron;             <- 创建neutron库 ->

Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all privileges on neutron.*to 'neutron'@'%' identified by 'neutron';

Query OK, 0 rows affected (0.00 sec)                <- 创建neutron用户 ->

MariaDB [(none)]> grant all privileges on neutron.*to 'neutron'@'localhost' identified by 'neutron';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database cinder;             <- 创建cinder库 ->

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on cinder.* to'cinder'@'localhost' identified by 'cinder';                             <- 创建cinder用户 ->

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on cinder.* to'cinder'@'%' identified by 'cinder';

Query OK, 0 rows affected (0.00 sec)

1.2.2keystone配置文件

[root@linux-node1 ~]# vim/etc/keystone/keystone.conf  <- 编辑配置文件 ->

613 [database]                      <- 数据库设置->

640 connection = mysql+pymysql://keystone:keystone@192.168.56.11/keystone

1458 [memcache]                     <- memcache设置 ->

1472 servers = 192.168.56.11:11211           <- memcache服务地址 ->

2655 provider = fernet                 <- 配置令牌 ->

2665 driver = memcache                 <- 选择driver为memcache默认是sql ->

[root@linux-node1 ~]# grep '^[a-z]'/etc/keystone/keystone.conf  <- 检查 ->

connection =mysql+pymysql://keystone:keystone@192.168.56.11/keystone

servers = 192.168.56.11:11211

provider = fernet

driver = memcache

1.2.3数据库,memcache配置

[root@linux-node1 ~]# su -s /bin/sh -c"keystone-manage db_sync" keystone

<- 初始化数据库 ->

[root@linux-node1 ~]# mysql -h 192.168.56.11-ukeystone -pkeystone -e "use keystone;show tables;"                        <- 检查表是否导入成功 ->

[root@linux-node1 ~]# vim/etc/sysconfig/memcached   <- 修改memcache配置文件 ->

OPTIONS="-l 192.168.56.11,::1"

[root@linux-node1 ~]# systemctl restartmemcached   <- 重启memcache ->

[root@linux-node1 ~]# cd /etc/keystone/

[root@linux-node1 keystone]# keystone-managefernet_setup --keystone-user keystone --keystone-group keystone               <- 初始化fernet key ->

[root@linux-node1 keystone]# keystone-managecredential_setup --keystone-user keystone --keystone-group keystone               <- 初始化fernet key ->

[root@linux-node1 keystone]#  keystone-manage bootstrap--bootstrap-password admin \                                             <- 引导身份服务 ->

--bootstrap-admin-urlhttp://192.168.56.11:35357/v3/ \

--bootstrap-internal-urlhttp://192.168.56.11:35357/v3/ \

--bootstrap-public-urlhttp://192.168.56.11:5000/v3/ \

--bootstrap-region-id RegionOne

1.2.4配置apache服务

[root@linux-node1 keystone]# vim/etc/httpd/conf/httpd.conf <- 编辑配置文件 ->

95 ServerName 192.168.56.11:80

[root@linux-node1 ~]# ln -s/usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/                                         <- 软连接配置文件 ->

[root@linux-node1 ~]# systemctl enablehttpd.service     <- 启动apache ->

[root@linux-node1 ~]# systemctl start httpd.service

[root@linux-node1 ~]# exportOS_USERNAME=admin        <- 配置环境变量 ->

[root@linux-node1 ~]# exportOS_PASSWORD=admin

[root@linux-node1 ~]# exportOS_PROJECT_NAME=admin

[root@linux-node1 ~]# exportOS_USER_DOMAIN_NAME=Default

[root@linux-node1 ~]# exportOS_PROJECT_DOMAIN_NAME=Default

[root@linux-node1 ~]# exportOS_AUTH_URL=http://192.168.56.11:35357/v3

[root@linux-node1 ~]# exportOS_IDENTITY_API_VERSION=3

[root@linux-node1 ~]# openstack user list          <- 查看用户列表 ->

[root@linux-node1 ~]# openstack role list          <- 查看角色列表 ->

[root@linux-node1 ~]# openstack project list         <- 查看项目列表 ->

[root@linux-node1 ~]# openstack endpointlist         <- 查看端点列表 ->

1.2.5创建项目

[root@linux-node1 ~]# openstack project create --domaindefault --description "Service Project" service                        <- 创建服务项目 ->

[root@linux-node1 ~]# openstack project list          <- 查看是否创建成功 ->

[root@linux-node1 ~]# openstack project create --domaindefault --description "Demo Project" demo                          <- 创建demo项目 ->

[root@linux-node1 ~]# openstack project list          <- 查看是否创建成功 ->

[root@linux-node1 ~]# openstack user create --domaindefault --password-prompt demo

User Password:demo

Repeat User Password:demo             <- 创建demo用户,密码:demo ->

[root@linux-node1 ~]# openstack user list     <- 查看是否创建成功 ->

[root@linux-node1 ~]# openstack role create user  <- 创建user角色 ->

[root@linux-node1 ~]# openstack role list      <- 查看是否创建成功 ->

[root@linux-node1 ~]# openstack role add --project demo--user demo user

<- 将demo用户加入到demo项目并且赋予user角色->

注:为了方便,以下操作将之后要用到的所有用户都创建好

[root@linux-node1 ~]# openstack user create --domaindefault   --password-prompt glance                   <- 创建glance用户,密码:glance ->

User Password:glance

[root@linux-node1 ~]# openstack role add --projectservice --user glance admin

<- 将glance用户加入到service项目并且赋予admin角色->

[root@linux-node1 ~]# openstack user create --domaindefault   --password-prompt nova                    <- 创建nova用户,密码:nova ->

User Password:nova

[root@linux-node1 ~]# openstack role add --projectservice --user nova admin

<- 将glance用户加入到service项目并且赋予admin角色->

[root@linux-node1 ~]# openstack user create --domaindefault   --password-prompt neutron                  <- 创建neutron用户,密码:neutron ->

User Password: neutron

[root@linux-node1 ~]# openstack role add --projectservice --user neutron admin

<- 将glance用户加入到service项目并且赋予admin角色->

[root@linux-node1 ~]# openstack user create --domaindefault   --password-prompt cinder                <- 创建cinder用户,密码:cinder ->

User Password:cinder

[root@linux-node1 ~]# openstack role add --projectservice --user cinder admin
                   <- 将glance用户加入到service项目并且赋予admin角色->

1.3验证keystone

1.3.1验证用户

[root@linux-node1 ~]# unset OS_AUTH_URL OS_PASSWORD   <- 取消之前的环境变量 ->

[root@linux-node1~]# openstack \

--os-auth-urlhttp://192.168.56.11:35357/v3 \

--os-project-domain-namedefault \

--os-user-domain-namedefault \

--os-project-nameadmin \

--os-usernameadmin token issue

<-验证admin用户,提示密码时输入admin出来如下界面证明admin用户没问题 ->

[root@linux-node1keystone]#  openstack \

--os-auth-urlhttp://192.168.56.11:35357/v3 \

--os-project-domain-namedefault \

--os-user-domain-namedefault \

--os-project-namedemo \

--os-usernamedemo token issue

<-验证demo用户,提示密码时输入demo出来如下界面证明demo用户没问题 ->

1.3.2创建环境变量脚本

[root@linux-node1 ~]# vim admin-openstack         <- admin环境变量 ->

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

export OS_AUTH_URL=http://192.168.56.11:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

[root@linux-node1 ~]# vim demo-openstack          <- demo环境变量 ->

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=demo

export OS_USERNAME=demo

export OS_PASSWORD=demo

export OS_AUTH_URL=http://192.168.56.11:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

[root@linux-node1 ~]# source admin-openstack      <- source环境变量 ->

[root@linux-node1 ~]# source demo-openstack

1.4Keystone常见错误

401 #验证失败,keystone相关用户账户密码设置错误,时间不同步,或者输入的项目名称不对

403 #可能未初始化OS_token变量,需要使用source命令使其生效,也可能是配置的配置文件未生效,需要重启相关服务

409 #keystone创建用户,用户已存在

500 #服务器内部错误,服务配置有问题,看日志,检查配置

503 #keystone相关账户密码设置有问题,请将相关的glance账户删除,重新创建即可

服务故障    #相关服务没有起来

转载于:https://blog.51cto.com/goodcook/1887429

【N版】openstack——认证服务keystone(三)相关推荐

  1. OpenStack 认证服务 KeyStone部署 (四)

    Keystone作用: 用户与认证:用户权限与用户行为跟踪: 服务目录:提供一个服务目录,包括所有服务项和相关Api的断点 SOA相关知识 Keystone主要两大功能用户认证和服务目录(相当于一个注 ...

  2. OpenStack实践系列②认证服务Keystone

    OpenStack实践系列②认证服务Keystone 三.实战OpenStack之控制节点 3.1 CentOS7的时间同步服务器chrony 下载chrony # yum install -y ch ...

  3. OpenStack之Keystone模块

    一.Keystone介绍 OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户.帐号和角色信息服务,并为Op ...

  4. OpenStack云第三天

    OpenStack云第三天 部署OpenStack Identity服务.  继OpenStack云第二天,本文翻译自OpenStack安装与部署指南第五章内容,内容主要是安装OpenStack Id ...

  5. 搭建Openstack环境以及Openstack认证服务

    搭建Openstack环境以及Openstack认证服务 Openstack之glance镜像服务.nova计算服务 Openstack之neutron网络服务. 启动一个实例 Openstack之d ...

  6. 脚本安装Rocky版OpenStack 1控制节点+1计算节点环境部署

    视频安装指南请访问: http://39.96.203.138/wordpress/document/%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85rocky%E7%89%8 ...

  7. havana版openstack(controller节点+network节点+compute节点)安装 CentOS6.5

    1.1    三个节点的openstack系统的安装 说明本次构建主要依据手册进行安装.在网络方面开始选择了VLAN ,但是由于硬件switch不支持,后又从VLAN格式更改为GRE. 构筑下面的测试 ...

  8. 源码安装OpenStack Ussuri ---Keystone篇

    源码安装OpenStack Ussuri -Keystone篇 前面我们进行了准备的操作,现在开始源码安装Keystone ,Keystone源码已经上传到我的gitee上面了,下面我们直接用这上面的 ...

  9. 手动部署OpenStack环境(三:OpenStack环境预配置)

    任务三.OpenStack环境预配置 3.1.本地OpenStack yum源制作 任务三:OpenStack环境预配置 3.1.本地OpenStack yum 源制作 3.1.1.拷贝镜像文件源到本 ...

最新文章

  1. Nginx使用教程(五):使用Nginx缓存之缓存静态内容
  2. MySQL · 社区动态 · MariaDB 10.2 前瞻
  3. PHP面试题:PHP.ini路径?
  4. SAP UI5 初学者教程之十五 - 对话框和 Fragments 的使用方式试读版
  5. linux脚本计时,Linux用脚本实现“时分秒“倒计时功能
  6. mysql 添加用户_mysql创建用户与授权
  7. java模板设计学习
  8. C# in depth (第六章 实现迭代器的捷径)
  9. python课程-Python课程
  10. ES6中Promise的入门(结合例子)
  11. Oracle编译小结,20090525 Oracle知识总结
  12. IIR滤波器和FIR滤波器
  13. 基于MFC的简易TCP/IP调试助手开发
  14. vue 倒计时 插件_vue+moment实现倒计时效果
  15. 给个华为服务器账号和密码忘了怎么办啊,华为路由器登陆用户名和密码忘了怎么办?...
  16. 如何查区块链项目的服务器地址,怎么查区块链服务器地址
  17. .com .org等域名/网址的理解
  18. 浪潮服务器查看硬件信息,zabbix通过ipmi传感器监控浪潮服务器的硬件信息
  19. 多渠道整合开始NGBOSS第一步——TmaxSoft谈运营商统一接口平台建设和管理
  20. 山上古树参天盘龙下载

热门文章

  1. h3csnmp管理命令_H3C S5500V2-EI系列以太网交换机 命令参考-Release 1118-6W100_网络管理和监控命令参考_SNMP命令-新华三集团-H3C...
  2. vs 调试 无法加载自定义可视化工具_推荐 5 款好用的REST API工具
  3. python只能对列表进行切片_Python3:类型错误:列表索引必须是整数或切片,而不是s...
  4. php随机数字总和固定,php 随机生成固定长度整数、各种服务器请求方法
  5. Python中如何修改字符串的值
  6. 计算机视觉及机器学习论文、源代码合集
  7. 【视频课】图像分割重磅上新-人像抠图(Matting)实战
  8. 全球及中国制糖行业销售规模与运营态势研究报告2022版
  9. 全球与中国激光投影设备市场前景规划与发展战略建议报告2022-2028年版
  10. android+studio+选择+苹方字体,启动欢迎页面时,Android Studio设置全屏Activity