节点配置信息说明:

控制节点:controller: 
IP:192.168.164.128 
hostname&hosts:likeadmin

计算加点:Nova:

IP:192.168.164.129 
hostname&hosts:likenode

块存储节点:cinder:

IP:192.168.164.136 
hostname&hosts:likeblock

1.  认证服务
OpenStack Identity服务提供单点集成,用于管理身份验证,授权和服务目录。
身份服务通常是用户与之交互的第一个服务。经过身份验证后,最终用户可以使用其身份访问其他OpenStack服务。
同样,其他OpenStack服务利用身份服务来确保用户是他们所声称的人,并发现部署中的其他服务。 
Identity服务还可以与某些外部用户管理系统(例如LDAP)集成。

用户和服务可以使用由Identity服务管理的服务目录来查找其他服务。顾名思义,服务目录是OpenStack部署中可用服务的集合。
每个服务可以有一个或多个端点,每个端点可以是以下三种类型之一:admin,internal或public。
在生产环境中,出于安全原因,不同的端点类型可能驻留在暴露给不同类型用户的不同网络上。例如,公共API网络可能从Internet上可见,因此客户可以管理他们的云。
管理API网络可能仅限于管理云基础架构的组织内的运营商。内部API网络可能仅限于包含OpenStack服务的主机。此外,OpenStack支持多个区域以实现可伸缩性。
为简单起见,本指南将管理网络用于所有端点类型和默认的RegionOne区域。在身份服务中创建的区域,服务和端点一起构成部署的服务目录。
部署中的每个OpenStack服务都需要一个服务条目,其中相应的端点存储在Identity服务中。这可以在安装和配置Identity服务之后完成。

服务器
一个中心化的服务器使用RESTful 接口来提供认证和授权服务。
Drivers
驱动或服务后端被整合进集中式服务器中。它们被用来访问OpenStack外部仓库的身份信息, 并且它们可能已经存在于OpenStack被部署在的基础设施(例如,SQL数据库或LDAP服务器)中。
Modules
中间件模块运行于使用身份认证服务的OpenStack组件的地址空间中。这些模块拦截服务请求,取出用户凭据,并将它们送入中央是服务器寻求授权。
中间件模块和OpenStack组件间的整合使用Python Web服务器网关接口。

1.安装并配置
本节介绍如何在控制器节点上安装和配置代号为keystone的OpenStack Identity服务。 出于可伸缩性的目的,此配置部署了Fernet令牌和Apache HTTP服务器来处理请求。
在安装和配置Identity服务之前,必须创建数据库。

1)用数据库连接客户端以 root 用户连接到数据库服务器:
$ mysql -u root -p

2)创建 keystone 数据库:
MariaDB [(none)]> CREATE DATABASE keystone;

3)对``keystone``数据库授予恰当的权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
-> IDENTIFIED BY 'djl18001';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
-> IDENTIFIED BY 'djl18001';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> 
用合适的密码替换 KEYSTONE_DBPASS 。此次试验环境,我们选用djl18001来作为试验密码。
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| keystone |
| mysql |
| performance_schema |
+--------------------+

2.安全并配置组件
1)运行以下命令来安装包。
# yum install openstack-keystone httpd mod_wsgi

2)编辑文件 /etc/keystone/keystone.conf 并完成如下动作:
在 [database] 部分,配置数据库访问:
[database]
# ...
connection = mysql+pymysql://keystone:djl18001@likeadmin/keystone
将``KEYSTONE_DBPASS``替换为你为数据库选择的密码。
注解:注释或删除``[database]``部分除``connection`以外的所有内容

在``[token]``部分,配置Fernet UUID令牌的提供者。
[token]
# ...
provider = fernet

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

4)初始化Fernet key:
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

5)引导身份服务::
# keystone-manage bootstrap --bootstrap-password djl18001 \
--bootstrap-admin-url http://likeadmin:35357/v3/ \
--bootstrap-internal-url http://likeadmin:5000/v3/ \
--bootstrap-public-url http://likeadmin:5000/v3/ \
--bootstrap-region-id RegionOne

6)配置 Apache HTTP 服务器¶
编辑``/etc/httpd/conf/httpd.conf`` 文件,配置``ServerName`` 选项为控制节点:
ServerName controller

创建一个链接到``/usr/share/keystone/wsgi-keystone.conf``文件
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

7)完成安装
启动 Apache HTTP 服务并配置其随系统启动:
# systemctl enable httpd.service
# systemctl start httpd.service

8)配置admin账户
$ export OS_USERNAME=admin
$ export OS_PASSWORD=djl18001
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://likeadmin:35357/v3
$ export OS_IDENTITY_API_VERSION=3

2.创建域、项目、用户和角色
Identity服务为每个OpenStack服务提供身份验证服务。 身份验证服务使用域,项目,用户和角色的组合。
1)本指南使用一个你添加到你的环境中每个服务包含独有用户的service 项目。创建``service``项目:
[root@likeadmin ~]# openstack project create --domain default \
> --description "Service Project" service
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Service Project |
| domain_id | default |
| enabled | True |
| id | 615b23c226e34df1a295d4d72eb3f9a3 |
| is_domain | False |
| name | service |
| parent_id | default |
+-------------+----------------------------------+
[root@likeadmin ~]#

2)常规(非管理)任务应该使用无特权的项目和用户。作为例子,本指南创建 demo 项目和用户。
1))创建``demo`` 项目:
[root@likeadmin ~]# openstack project create --domain default \
> --description "Demo Project" demo
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Demo Project |
| domain_id | default |
| enabled | True |
| id | efcaab21a85549b3acf41e10673e030f |
| is_domain | False |
| name | demo |
| parent_id | default |
+-------------+----------------------------------+
[root@likeadmin ~]#

2))创建``demo`` 用户:
[root@likeadmin ~]# openstack user create --domain default \
> --password-prompt demo
User Password: djl18001
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 685be60f342f4d9086ae494ab94c4287 |
| name | demo |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@likeadmin ~]

3))创建 user 角色:
[root@likeadmin ~]# openstack role create user
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | None |
| id | 147497264e8044d7b25224e9e07467ca |
| name | user |
+-----------+----------------------------------+
[root@likeadmin ~]#

4))将用户角色添加到演示项目的演示用户:
[root@likeadmin ~]# openstack role add --project demo --user demo user

3.验证操作
在安装其他服务之前确认身份认证服务的操作。
在控制节点上执行这些命令。
1)因为安全性的原因,关闭临时认证令牌机制:
编辑 /etc/keystone/keystone-paste.ini 文件,从``[pipeline:public_api]``,[pipeline:admin_api]``和``[pipeline:api_v3]``部分删除``admin_token_auth 。

2)撤销临时环境变量``OS_AUTH_URL``和``OS_PASSWORD``
$ unset OS_AUTH_URL OS_PASSWORD

3)作为 admin 用户,请求认证令牌:
[root@likeadmin ~]# openstack --os-auth-url http://likeadmin:35357/v3 \
> --os-project-domain-name default --os-user-domain-name default \
> --os-project-name admin --os-username admin token issue
Password: djl18001
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2019-03-19T04:11:48+0000 |
| id | gAAAAABckF30e2NrzmZwVdm7vtT_qWY-uittPzL0Gb6liYnh2aDsAPHLuYcThpcBSqddZ5vNtY6tY_J2LqzfM1zCZOSs88pmirLEkJw_glILv5 |
| | -DbMa9iPZGcSgCaxI_VsRnJ4OLcZVW4u6QOuLbHgKmRVHzrL3ZSgs52tg-TVeTXDO8L37qYjo |
| project_id | 3e43d2f6475e4fd2ab1daa02d2f0c254 |
| user_id | 6b43bf9fd95144b7b6df3dcefcfaa084 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
[root@likeadmin ~]#

4)作为``demo`` 用户,请求认证令牌:
[root@likeadmin ~]# openstack --os-auth-url http://likeadmin:5000/v3 \
> --os-project-domain-name default --os-user-domain-name default \
> --os-project-name demo --os-username demo token issue
Password: djl18001
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2019-03-19T04:12:34+0000 |
| id | gAAAAABckF4i6st-dEO_IdFvQxrIF_Vod8RfHTJFvW71vYcF7BuYuoRrs7tVwHezUNhu_ETWDjfzGDvVw4JHNaN4vS8CXMDjuakofPQrgDaKKajOsMEhTd9MmDGWSMcLPfrO6mzRGPJn |
| | maZ3jVdi9rgOajea6oRUwb5VzEocLBGhL6AVKcIzpT0 |
| project_id | efcaab21a85549b3acf41e10673e030f |
| user_id | 685be60f342f4d9086ae494ab94c4287 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
[root@likeadmin ~]#

4。创建 OpenStack 客户端环境脚本
上一节使用环境变量和命令选项的组合,通过openstack客户端与Identity服务进行交互。
为了提高客户端操作的效率,OpenStack支持简单的客户端环境脚本,也称为OpenRC文件。
这些脚本通常包含所有客户端的公共选项,但也支持唯一选项。 有关更多信息,请参阅“OpenStack最终用户指南”。
1)创建脚本
创建 admin 和 ``demo``项目和用户创建客户端环境变量脚本。本指南的接下来的部分会引用这些脚本,为客户端操作加载合适的的凭证。
客户端环境脚本的路径不受限制。 为方便起见,您可以将脚本放在任何位置,但请确保它们是可访问的。

2)创建和编辑admin-openrc文件并添加以下内容:
注解:OpenStack客户端还支持使用clouds.yaml文件。
[root@likeadmin ~]# vim /root/.admin-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=djl18001
export OS_AUTH_URL=http://likeadmin:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

3)创建并编辑demo-openrc文件并添加以下内容
[root@likeadmin ~]# vim /root/.demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=djl18001
export OS_AUTH_URL=http://likeadmin:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

4)使用脚本
使用特定租户和用户运行客户端,你可以在运行之前简单地加载相关客户端脚本。例如:
加载``admin-openrc``文件来身份认证服务的环境变量位置和``admin``项目和用户证书:
[root@likeadmin ~]# source /root/.admin-openrc

请求认证令牌:
[root@likeadmin ~]# openstack token issue
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2019-03-19T04:30:34+0000 |
| id | gAAAAABckGJam76OJbygHbqHp8C7GIuloj_HoZzj8RGk-jpD_n-ll5be7QZXDiNLuuwpYlFls0-iepDZvj_6EwgPauzT8Ne-v_WM- |
| | dNn7JCoczavPjIeewtijFVw1ayA9v0t2A6E3DHKDKsE0UpgaSZjuHwoVbQ6rTzaDNWUSInE3rW2syW-fo4 |
| project_id | 3e43d2f6475e4fd2ab1daa02d2f0c254 |
| user_id | 6b43bf9fd95144b7b6df3dcefcfaa084 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------+
[root@likeadmin ~]#

注:至此OpenStack的认证服务keystone已安装配置完成。

OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 3.安装配置OpenStack认证服务(keystone)的更多相关文章

  1. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 2.安装配置OpenStack基础服务

    节点配置情况说明: 控制节点:controller: IP:192.168.164.128 hostname&hosts:likeadmin 计算加点:Nova: IP:192.168.164 ...

  2. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置

    1.OpenStack示例的架构介绍 1.1 各节点介绍 (1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板. ...

  3. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 8.仪表盘 Dashboard(horizon)安装配置

    仪表盘Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器. 节点配置信息说明 ...

  4. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 5.在控制节点上部署计算服务Nova

    计算服务Nova使用OpenStack Compute来托管和管理云计算系统. OpenStack Compute是基础架构即服务(IaaS)系统的主要部分. 主要模块用Python实现.OpenSt ...

  5. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —7.网络服务Neutron配置

    网络服务Neutron本章节结束如何安装并配置网络服务(neutron)采用:ref:`provider networks <network1>`或:ref:`self-service n ...

  6. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 6.在计算节点上安装并配置计算服务Nova

    安装和配置计算节点这个章节描述如何在计算节点上安装和配置计算服务. 计算服务支持几种不同的 hypervisors.为了简单起见,这个配置在计算节点上使用 :KVM <kernel-based ...

  7. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —9.块存储服务(cinder)部署配置

    块存储服务部署相关块存储服务(cinder)为实例提供块存储.存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的.还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等.典型 ...

  8. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 4.镜像服务(glance)

    节点配置信息说明: 控制节点:controller: IP:192.168.164.128 hostname&hosts:likeadmin 计算加点:Nova: IP:192.168.164 ...

  9. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

随机推荐

  1. Python函数定义和使用

    函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果.通过使用函数,可以提高代码的重复利用率.本文主要介绍Python函数的定义.调用和函数参数设置方法. 函数的定义 Python函数定 ...

  2. js实现图片上传预览功能,使用base64编码来实现

    实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库. 但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般 ...

  3. tensorflow报错error,tf.concat Expected int32, got list containing Tensors of type '_Message' instead

    参考:https://stackoverflow.com/questions/41813665/tensorflow-slim-typeerror-expected-int32-got-list-co ...

  4. python学习笔记(四)- 常用的字符串的方法

    一.常用的字符串方法(一):(字符串是不能被修改的) 1)a.strip()   #默认去掉字符串两边的空格和换行符 a = ' 字符串 \n\n ' c = a.strip() a.lstrip() ...

  5. 【收藏】UICrawler

    基于 Appium 的 App UI 遍历 & Monkey 工具 (支持操作步骤回放) UICrawler https://github.com/lgxqf/UICrawler 基于Appi ...

  6. HashMap的tableSizeFor方法解读

    static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> ...

  7. Entity Framework - PostgresQL CodeFirst

    经过几年的更新及业界对Entity Framework 的认同. 现在 EF 可以支持的数据库越来越多了.而PostgresQL 数据库现在也可以使用code first的方式来创建数据库了. 不多说 ...

  8. 保存一份自己常用的packjson

    这里是一份专门针对react的插件配置, 有: es5的转换器,有ie的promise垫片,有蚂蚁金服的anth,还有用于消息通信的pubsub订阅发布系统,虽然现在不用了.... 用于发请求的axi ...

  9. centOS7搭建nexus私服

    1.保证JDK,MAVEN已安装,firewalld服务安装 PS:yum install firewalld 2.官网下载:https://www.sonatype.com/download-oss ...

  10. Python开发——数据类型【集合】

    集合的定义 由一个或多个确定的元素所构成的整体 可变集合 s=set('hello') print(s) # {'e', 'l', 'o', 'h'} s=set(['alex','alex','Lu ...