热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStackkeystone的安装过程

keystone是openstack中用于身份验证的项目,任何服务请求需要经过它的验证获得服务的endpoint。具体作用请看相关官方文档。这里我使用的是mysql来存储keystone的数据。keystoneHost:keystoneip:192.168.0.106mysql,keystone1、安装1)安装数据库s

keystone是openstack中用于身份验证的项目,任何服务请求需要经过它的验证获得服务的endpoint。具体作用请看相关官方文档。这里我使用的是mysql来存储keystone的数据。

keystone

Host:keystone

ip:192.168.0.106

mysql, keystone

1、安装

 1)安装数据库

sudoapt-get install mysql-server mysql-client python-mysqldb

    进/etc/mysql/my.cnf里,将bind-address=127.0.0.1改成 0.0.0.0。这样远程主机就可以连接上这个mysql。

    重启mysql服务。sudo service mysql restart

2)安装keystone

 安装软件

sudoapt-get install keystone

创建keystone数据库,并创建用户以及分配权限。

create database keystone;

grant all on keystone.* to 'keystone'@'%' identified by 'keystonepwd';

 配置keystone

配置keystone,修改/etc/keystone/keystone.conf文件:

[sql]

#cOnnection= sqlite:////var/lib/keystone/keystone.db

cOnnection= mysql://keystone:keystonepwd@192.168.0.106/keystone

这里注意一下该文件里的这部份信息,记住admin_token参数,以后会用的上,这个参数是用来访问keystone服务的。默认是ADMIN,也可以改成别的。

[DEFAULT]

public_port = 5000

admin_port = 35357

admin_token = ADMIN

compute_port = 8774

verbose = True

debug = True

log_cOnfig=/etc/keystone/logging.conf

重启keystone服务

sudoservice keystone restart

同步数据库,

sudokeystone-manage db_sync

然后去数据库里看,

mysql>show tables;

+------------------------+

|Tables_in_keystone     |

+------------------------+

|ec2_credential         |

|endpoint               |

|metadata               |

|migrate_version        |

|role                   |

|service                |

|tenant                 |

|token                  |

|user                   |

|user_tenant_membership |

+------------------------+

2、使用keystone

导入环境变量,当然也可以在每次执行keystone命令时加上这方面的参数,keystone 命令格式参见它的help

export SERVICE_TOKEN=ADMIN

exportSERVICE_ENDPOINT=http://192.168.0.106:35357/v2.0

添加tenant:

keystonetenant-create --name adminTenant --description "Admin Tenant"--enabled true

keystone@keystone:~$keystone tenant-list

+----------------------------------+-------------+---------+

|                id                |     name   | enabled |

+----------------------------------+-------------+---------+

|72a95ab302cc42d59e6f414769dcfec7 | adminTenant | True    |

+----------------------------------+-------------+---------+

添加user:

keystoneuser-create --tenant_id 72a95ab302cc42d59e6f414769dcfec7 --name admin --passopenstack --enabled true

keystone@keystone:~$ keystone user-list

+----------------------------------+---------+-------+-------+

|                id                | enabled | email |  name |

+----------------------------------+---------+-------+-------+

|4fd5ba059a6945c0a43ff63b0140b0a9 | True   | None  | admin |

+----------------------------------+---------+-------+-------+

添加role

keystonerole-create --name adminRole

keystone@keystone:~$ keystone role-list

+----------------------------------+-----------+

|                id                |    name  |

+----------------------------------+-----------+

|675b96a12d834021b519ef50502a5e5e | adminRole |

+----------------------------------+-----------+

将这三者关联

keystoneuser-role-add --user 4fd5ba059a6945c0a43ff63b0140b0a9 --tenant_id72a95ab302cc42d59e6f414769dcfec7 --role 675b96a12d834021b519ef50502a5e5e

这样就ok了。测试一下,用curl工具测试。

       sudo apt-get install curl

       我们先输入一个错误的密码试试

curl-d '{"auth": {"tenantName": "adminTenant","passwordCredentials":{"username": "admin","password": "wrong"}}}' -H"Content-type: application/json" http://192.168.0.106:35357/v2.0/tokens| python -mjson.tool

       返回结果

{

    "error":{

        "code":401, 

        "message":"Invalid user / password", 

        "title":"Not Authorized"

    }

}

    如果用户名/密码都正确的话

curl -d'{"auth": {"tenantName": "adminTenant","passwordCredentials":{"username": "admin","password": "openstack"}}}' -H "Content-type:application/json" http://192.168.0.106:35357/v2.0/tokens | python-mjson.tool

    就会返回很多信息,如token、user等,内容太多了,这里我就不贴了。


推荐阅读
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • SQL查询数据表结构的方法
    本文介绍了如何使用SQL命令查看数据库中特定表的创建结构,这对于数据库管理和维护非常有用。文章还提供了一些额外的技巧和最佳实践。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了如何在VSCode中正确配置Python环境,包括通过不同方式安装Python以及如何安装和配置Python插件,确保开发环境顺利搭建。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 在编程实践中,正确管理和释放资源是非常重要的。本文将探讨 Python 中的 'with' 关键字及其背后的上下文管理器机制,以及它们如何帮助我们更安全、高效地管理资源。 ... [详细]
  • MySQL中批量删除特定前缀表的方法
    在MySQL数据库管理中,有时需要批量删除具有相同前缀的表。由于MySQL本身并未提供直接支持此操作的工具,因此需要利用SQL查询来构造DROP TABLE语句,以实现这一需求。 ... [详细]
  • 如何在U8系统中连接服务器并获取数据
    本文介绍了如何在U8系统中通过不同的方法连接服务器并获取数据,包括使用MySQL客户端连接实例的方法,如非SSL连接和SSL连接,并提供了详细的步骤和注意事项。 ... [详细]
author-avatar
手机用户2502869895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有