【N版】openstack——认证服务keystone(三)

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

一.keystone介绍

1.1keystone

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

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

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

主要涉及如下概念:

User:   用户

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

Token:  令牌

Role:   角色

1.2keystone配置

1.2.1创建库及用户

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

[[email protected] ~]# mysql -uroot –p              <- 登陆数据库 ->

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

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

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on keystone.*to [email protected]‘%‘ 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.* [email protected]‘localhost‘ identified by ‘glance‘;

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

MariaDB [(none)]> grant all privileges on glance.* [email protected]‘%‘ 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.* [email protected]‘%‘ identified by ‘nova‘;

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

MariaDB [(none)]> grant all privileges on nova.* [email protected]‘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配置文件

[[email protected] ~]# vim/etc/keystone/keystone.conf  <- 编辑配置文件 ->

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

640 connection = mysql+pymysql://keystone:[email protected]/keystone

1458 [memcache]                     <- memcache设置 ->

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

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

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

[[email protected] ~]# grep ‘^[a-z]‘/etc/keystone/keystone.conf  <- 检查 ->

connection =mysql+pymysql://keystone:[email protected]2.168.56.11/keystone

servers = 192.168.56.11:11211

provider = fernet

driver = memcache

1.2.3数据库,memcache配置

[[email protected] ~]# su -s /bin/sh -c"keystone-manage db_sync" keystone

<- 初始化数据库 ->

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

[[email protected] ~]# vim/etc/sysconfig/memcached   <- 修改memcache配置文件 ->

OPTIONS="-l 192.168.56.11,::1"

[[email protected] ~]# systemctl restartmemcached   <- 重启memcache ->

[[email protected] ~]# cd /etc/keystone/

[[email protected] keystone]# keystone-managefernet_setup --keystone-user keystone --keystone-group keystone               <- 初始化fernet key ->

[[email protected] keystone]# keystone-managecredential_setup --keystone-user keystone --keystone-group keystone               <- 初始化fernet key ->

[[email protected] 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服务

[[email protected] keystone]# vim/etc/httpd/conf/httpd.conf <- 编辑配置文件 ->

95 ServerName 192.168.56.11:80

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

[[email protected] ~]# systemctl enablehttpd.service     <- 启动apache ->

[[email protected] ~]# systemctl start httpd.service

[[email protected] ~]# exportOS_USERNAME=admin        <- 配置环境变量 ->

[[email protected] ~]# exportOS_PASSWORD=admin

[[email protected] ~]# exportOS_PROJECT_NAME=admin

[[email protected] ~]# exportOS_USER_DOMAIN_NAME=Default

[[email protected] ~]# exportOS_PROJECT_DOMAIN_NAME=Default

[[email protected] ~]# exportOS_AUTH_URL=http://192.168.56.11:35357/v3

[[email protected] ~]# exportOS_IDENTITY_API_VERSION=3

[[email protected] ~]# openstack user list          <- 查看用户列表 ->

[[email protected] ~]# openstack role list          <- 查看角色列表 ->

[[email protected] ~]# openstack project list         <- 查看项目列表 ->

[[email protected] ~]# openstack endpointlist         <- 查看端点列表 ->

1.2.5创建项目

[[email protected] ~]# openstack project create --domaindefault --description "Service Project" service                        <- 创建服务项目 ->

[[email protected] ~]# openstack project list          <- 查看是否创建成功 ->

[[email protected] ~]# openstack project create --domaindefault --description "Demo Project" demo                          <- 创建demo项目 ->

[[email protected] ~]# openstack project list          <- 查看是否创建成功 ->

[[email protected] ~]# openstack user create --domaindefault --password-prompt demo

User Password:demo

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

[[email protected] ~]# openstack user list     <- 查看是否创建成功 ->

[[email protected] ~]# openstack role create user  <- 创建user角色 ->

[[email protected] ~]# openstack role list      <- 查看是否创建成功 ->

[[email protected] ~]# openstack role add --project demo--user demo user

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

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

[[email protected] ~]# openstack user create --domaindefault   --password-prompt glance                   <- 创建glance用户,密码:glance ->

User Password:glance

[[email protected] ~]# openstack role add --projectservice --user glance admin

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

[[email protected] ~]# openstack user create --domaindefault   --password-prompt nova                    <- 创建nova用户,密码:nova ->

User Password:nova

[[email protected] ~]# openstack role add --projectservice --user nova admin

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

[[email protected] ~]# openstack user create --domaindefault   --password-prompt neutron                  <- 创建neutron用户,密码:neutron ->

User Password: neutron

[[email protected] ~]# openstack role add --projectservice --user neutron admin

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

[[email protected] ~]# openstack user create --domaindefault   --password-prompt cinder                <- 创建cinder用户,密码:cinder ->

User Password:cinder

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

1.3验证keystone

1.3.1验证用户

[[email protected] ~]# unset OS_AUTH_URL OS_PASSWORD   <- 取消之前的环境变量 ->

[[email protected]~]# 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用户没问题 ->

[[email protected]]#  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创建环境变量脚本

[[email protected] ~]# 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

[[email protected] ~]# 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

[[email protected] ~]# source admin-openstack      <- source环境变量 ->

[[email protected] ~]# source demo-openstack

1.4Keystone常见错误

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

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

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

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

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

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

时间: 2024-10-05 04:58:13

【N版】openstack——认证服务keystone(三)的相关文章

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

一. 基础环境 1.1环境介绍 linux-node1(控制节点) 1 #系统版本 2 [[email protected] ~]# cat /etc/redhat-release 3 CentOS Linux release 7.2.1511 (Core) 4 #内核版本 5 [[email protected] ~]# uname -r 6 3.10.0-327.36.3.el7.x86_64 7 #主机名 8 [[email protected] ~]# hostname 9 linux-

OpenStack 认证服务 KeyStone [二]

 openstack认证服务Keystone 介绍 Keystone作用: 1.用户与认证:用户权限与用户行为跟踪: 2.服务目录:提供一个服务目录,包括所有服务项和相关Api的断点 3.SOA相关知识 Keystone主要两大功能用户认证 服务目录(相当于一个注册中心) 用户认证几大名词介绍 User:用户  它是用一个数字代表使用openstack云服务的一个人.系统.或服务.身份验证服务将会验证传入的由用户声明将调用的请求  一个租户可以有多个用户  一个用户可以属于一个或多个租户  用户

OpenStack 认证服务 KeyStone(三)

Keystone 介绍 Keystone作用: 用户与认证:用户权限与用户行为跟踪: 服务目录:提供一个服务目录,包括所有服务项和相关Api的断点 SOA相关知识 Keystone主要两大功能用户认证和服务目录(相当于一个注册中心) 用户认证名词介绍 User:用户 它是用一个数字代表使用openstack云服务的一个人.系统.或服务.身份验证服务将会验证传入的由用户声明将调用的请求 一个租户可以有多个用户 一个用户可以属于一个或多个租户 用户对租户和操作权限由用户在租户中承担的角色来决定. P

OpenStack 认证服务 KeyStone 服务注册(五)

创建服务实体和API端点 创建服务 openstack service create --name keystone --description "OpenStack Identity" identity 创建endpoint OpenStack使用三个API端点变种代表每种服务:admin,internal和public.默认情况下,管理API端点允许修改用户和租户而公共和内部APIs不允许这些操作.在生产环境中,处于安全原因,变种为了服务不同类型的用户可能驻留在单独的网络上.对实例

OpenStack 认证服务 KeyStone使用(四)

连接keystone两种方式: 一种使用命令 一种使用环境变量 1.通过环境变量方式连接keystone 配置认证令牌环境变量 export OS_TOKEN=07081849f55281652dac 备注:07081849f55281652dac这个值与/etc/keystone/keystone.conf配置文件中的admin_token一致 配置连接到keystone的地址 export OS_URL=http://192.168.137.11:35357/v3 设置keystone的ad

[ Openstack ] OpenStack-Mitaka 高可用之 认证服务(keystone)

目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署    Openstack-Mitaka 高可用之 memcache    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群    Openstack-Mitaka 高可用之 认证服务(keystone)    Openstack-Mitaka

Centos7 Openstack - (第二节)添加认证服务(Keystone)

Centos7 install Openstack - (第二节)添加认证服务(Keystone) 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack官方文档配置 官方文档地址: http://docs.openstack.org/juno/install-guide/install/yum/content/# 0x01.认证服务安装与配置(控制节点) [[email protected] ~]# mysql -uroot -p MariaDB

在安装Openstack的keystone认证服务时,出现The request you have made requires authentication. (HTTP 401) (Request-ID: req-f94bebba-f0c5-4a92-85问题的处理

创建openstack的keystone认证服务器报错: The request you have made requires authentication. (HTTP 401) (Request-ID: req-f94bebba-f0c5-4a92-85 处理方法: #openssl rand -hex 10                 //随机获取一个值 c833dac455762a01542a #vi /etc/keystore/keystore.conf [admin_token]

OpenStack之Keystone模块

一.Keystone介绍 OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户.帐号和角色信息服务,并为OpenStack Object Storage提供授权服务. OpenStack的身份服务提供了集成的管理身份验证,授权和服务目录服务的单点,其他的OpenStack服务使用的身份服务作为一个通用统一的API,此外,提供有关用户的信息,但该服务不包括开栈(如LDAP服务)可以被集成到一个预先存在的基础