`
CrazzyLee
  • 浏览: 26805 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Openstack Keystone和Swift的集成操作

 
阅读更多
因为机器有限,此次此时仅仅使用swift的ALL IN ONE安装模式.Keystone的安装和swift安装都在同一机器上运行。
此次的记录并未记录swift ALL IN ONE的安装方法,仅仅记录keystone如何与swift all in ONe方式进行集成完成鉴权

系统:Ubuntu 10.04

/**拷贝项目到本地**/                    --需要安装git  sudo apt-get install git
git clone https://github.com/openstack/keystone.git
git clone https://github.com/openstack/python-keystoneclient.git

/**下载所需工具包**/
sudo apt-get install python-dev libxml2-dev libxslt1-dev libsasl2-dev libsqlite3-dev libssl-dev libldap2-dev   [同时下载镜像慢会报错,最好分开下载]
sudo apt-get install sqlitebrowser

/**创建用户或者使用root用户进行操作/
sudo su

/**进入keystone文件夹下**/  
cd keystone

/**安装VirtualEnv **/
sudo python tools/install_venv.py           [无异常就生成成功,操作最好以root]
(这步操作也同时下载了pip-requires和test-requires所需的包)

/**切换到新创建的虚拟环境中**/
source .vent/bin/activate
[停用虚拟环境] deactivate

/**安装KeyStone**/
如需在虚拟环境外也可使用keystone命令行
sudo pip tools/pip-requires
sudo pip tools/test-requires

sudo python setup.py develop

/**测试keystone引用**/
sudo python
>>> import keystone    
>>>

/** 将示例用来启动keystone的配置文件还原**/[当前还在keystone文件目录下,目录下有etc]
cp etc/keystone.conf.sample etc/keystone.conf

*******************这里我选择的是SQLite存储方式,可以更换为其他数据库或者是基于文件的存储。 记住更改内面引用的user**********


/** 测试以前的swift是否能够跑通 (鉴权方式并非keystone的时候)**/
swift-init main start
curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:8080/auth/v1.0
(能够返回200或者204的话,说明运行通畅,可以先暂时停掉swift了,因为后续要修改proxy-server.conf)

/**开启keystone**/
cd ~/keystone
bin/keystone-all


/**运行数据库初始化**/
sudo bin/keystone-manage db_sync

/**根据配置文件的token的来创建租户,用户,角色**/
(使用的是python-keystoneclient.git 项目)
export SERVICE_TOKEN="在keystone安装目录下etc/keystone.conf中的Token值"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"

/**创建租户**/ [ROOT]
keystone tenant-create --name=service
信息: id=d871847839fa4fbabd08950221917028
/**创建用户**/ [ROOT]
keystone user-create --name=admin --pass=admin --email=si.li@boventech.com                 
信息: id=1071f434270e4f7aa36f433be788d17b


/**创建ROLE**/
keystone role-create --name=admin
信息: id=07c69b2da1e041c1800238f0120db2a9
keystone role-create --name=Member
信息: id=460e5db0aeb54d9e9c6c446f778e64f6


/**Add Roles to Users IN Tenants**/
keystone user-role-add --user [这里放用户ID] --role [这里放角色ID] --tenant_id [这里放tenantID]

/**配置KeyStone的Service **/
keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description | Keystone Identity Service        |
| id          | b6b28e55990f428bacd2ca45f64799ce|
| name        | keystone                         |
| type        | identity                         |
//+-------------+----------------------------------+
//配置Keystone  Service的endpoint 
keystone endpoint-create --region RegionOne
--service_id b6b28e55990f428bacd2ca45f64799ce
--publicurl 'http://localhost:5000/v2.0'
--adminurl 'http://localhost:35357/v2.0'
--internalurl 'http://localhost:5000/v2.0'




/**配置Swift的Service **/
keystone service-create --name=swift --type="object-store" --description="Swift Service"

+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description | Swift Service                    |
| id          | 004608f103714d81aa3e01b79913789b |
| name        | swift                            |
| type        | object-store                     |
+-------------+----------------------------------+

//创建管理Swift的User
keystone user-create --name=swift --pass=admin --tenant_id d871847839fa4fbabd08950221917028 --email=si.li@boventech.com
信息: id=8651d459557c474389bca64a9346f70a
//将名称为"admin"的角色权限配置给用户名为"swift"的用户到"service"的租户管理中
keystone user-role-add --tenant_id {tenant_id} --user {user_id} --role {rule_id}

//为Swift Service 配置endpoint
keystone endpoint-create --region RegionOne
--service_id 004608f103714d81aa3e01b79913789b
--publicurl 'http://localhost:8080/v1/AUTH_{tenantID}'
--adminurl 'http://localhost:8080/'
--internalurl 'http://localhost:8080/v1/AUTH_{tenantID}'

/**创建完毕后检查Sqlite3内存储的信息是否已经加进去了**/
sqlite3 keystone.db

SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>.tables
sqlite>select  * from service;
sqlite>select  * from user;
sqlite>select  * from ....;


或者打开图形界面
sudo sqlitebrowser


*************************************配置swift/proxy-server.conf*********************

[DEFAULT]
bind_port = 8080
user =sili

[pipeline:main]
pipeline = catch_errors healthcheck cache authtoken keystone proxy-server

[app:proxy-server]
use = egg:swift#proxy
account_autocreate = true

[filter:keystone]
paste.filter_factory = keystone.middleware.swift_auth:filter_factory
operator_roles = admin,Member

[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
# Delaying the auth decision is required to support token-less
# usage for anonymous referrers ('.r:*').
delay_auth_decision =0
service_port = 5000
service_host = 127.0.0.1
auth_port = 35357
auth_host = 127.0.0.1
auth_uri=http://127.0.0.1:5000/
auth_token = ADMIN
admin_token = ADMIN
auth_protocol = http 


[filter:cache]
use = egg:swift#memcache
set log_name = cache

[filter:catch_errors]
use = egg:swift#catch_errors

[filter:healthcheck]
use = egg:swift#healthcheck

**************************************************************************************

//开启swift
swift-init proxy start
swift-init all start


//测试

/**测试keystone在节点上是否完好**/
curl -d '{"auth": {"tenantName": "service", "passwordCredentials":{"username": "swift", "password": "admin"}}}' -H "Content-type: application/json" http://localhost:5000/v2.0/tokens | python -mjson.tool

/**测试swift集成**/
swift  -A  http://localhost:5000/v2.0 -U service:swift -K admin stat -V 2
分享到:
评论

相关推荐

    OpenStack Keystone

    在Keystone与Neutron的交互中,Keystone提供了身份认证和授权服务,Neutron通过与Keystone的协作完成网络资源的管理和操作。 理解Keystone的工作流程对于构建和维护一个安全稳定的OpenStack云平台至关重要。无论是...

    核心存储Ceph与OpenStack私有云实战集成

    要实现Keystone与Rados网关的集成,需要按照以下步骤操作: 1. **配置RadosGW**: - 在Ceph集群中安装并配置RadosGW服务。 2. **在Keystone上创建服务与端点**: - 通过Keystone API或者管理界面创建RadosGW的...

    OpenStack从零开始学

    《OpenStack从零开始学》是一本面向初学者的指南,旨在帮助读者全面理解并掌握OpenStack这一开源云操作系统的基础知识和实践技能。OpenStack是一个庞大且复杂的项目,由多个组件构成,为云计算提供了基础设施即服务...

    openstack部署笔记+脚本

    Ubuntu是广泛应用于OpenStack部署的操作系统,以其稳定性和社区支持而闻名。 在“openstack ubuntu双节点部署教程”中,我们将探讨如何在两个Ubuntu服务器上搭建OpenStack环境。这种部署模式常用于高可用性设置,以...

    openstack对接只读LDAP

    ### OpenStack Keystone与只读LDAP集成详解 #### 一、引言 随着云计算技术的不断发展,OpenStack作为一款开源的云平台解决方案,在企业级私有云建设中扮演着越来越重要的角色。然而,在实际部署过程中,如何与企业...

    centos7 openstack ocata安装

    【openstack相关服务】这部分可能涵盖了其他的OpenStack组件,如Swift(对象存储)、Cinder(块存储)、Ceilometer(计量服务)和Aodh(告警服务)等。安装相应的软件包,配置服务以连接到keystone和其他必要的组件...

    sakai-openstack-swift:Openstack Swift酒井资源

    【Openstack Swift酒井资源】是一个专为OpenStack Swift云存储设计的文件系统处理程序,主要针对Java...这包括类的设计、方法的实现、以及可能的测试用例,帮助开发者更好地理解和集成Openstack Swift到其Java应用中。

    Openstack部署手册

    配置Glance,包括设置数据存储后端(如本地文件系统、Swift或Ceph)、注册初始镜像,以及配置Glance与Keystone的认证集成。 六、nova配置 Nova的配置涉及计算节点、调度器、网络和API服务的设置。需要配置计算驱动...

    OpenStack Victoria版安装部署实例教程

    总的来说,OpenStack Victoria版的安装部署是一个复杂的过程,涉及到多个组件的配置和集成。通过遵循这份教程,你可以逐步构建一个完整的OpenStack云环境,理解OpenStack各部分的功能和交互,从而更好地管理和利用云...

    OpenStack中国行PPT(成都)

    在OpenStack中,核心组件包括计算(Nova)、存储(Cinder和Swift)、网络(Neutron)、身份管理(Keystone)、镜像服务(Glance)、dashboard(Horizon)等。这些组件共同协作,为用户提供了一个全面的基础设施即...

    OpenStackKilo-中文安装指南

    OpenStack的概念架构基于一个中心化的身份认证服务(Keystone),其他服务都通过API接口与其交互来完成认证和权限检查。各个服务之间通过RESTful API相互通信,实现灵活可扩展的架构设计。 ##### 架构样例 为了更...

    openeuler-22.03-LTS安装openstack-train

    在OpenEuler操作系统环境下安装OpenStack Train版本是一个复杂的任务,涉及到多个步骤和组件的集成。OpenEuler是一个开源操作系统,其22.03-LTS(长期支持)版本提供了稳定的基础,适合部署大规模云计算基础设施如...

    django-swiftbrowser-master.zip

    综上所述,Django-SwiftBrowser是为OpenStack Swift提供Web访问管理的有力工具,它利用Django的强大功能和Swift的分布式存储能力,为企业和开发者提供了一种直观且易于管理的界面,使得在云端存储和操作数据变得更加...

    openstack4j-2

    这个框架提供了丰富的API,使得开发者能够方便地在Java应用中集成OpenStack的各种服务,如计算(Nova)、存储(Swift)、网络(Neutron)等。OpenStack4J-2可能是该框架的一个特定版本或更新,旨在增强功能、提升...

    OpenStack全套安装教程.rar

    作为OpenStack的基础服务,Keystone提供了认证和授权功能。首先,创建数据库、服务端点和API版本,然后启动服务。 五、安装Nova Nova是OpenStack的核心服务,负责处理计算任务。安装Nova的控制节点和服务节点,配置...

    OpenStack-原文.pdf

    3. 架构基础:介绍OpenStack的基本组件,如Nova(计算)、Swift(对象存储)、Neutron(网络)、Cinder(块存储)和Keystone(身份管理),以及它们如何协同工作以提供云服务。 4. 高可用性与扩展性:讨论如何设计...

    Packt.OpenStack.Cloud.Computing.Cookbook.3rd.Edition

    7. **身份服务Keystone**:深入理解Keystone,它是OpenStack的身份管理系统,负责认证、授权和令牌管理。书中会指导读者如何设置用户、项目、角色和权限。 8. **镜像服务Glance**:了解如何使用Glance服务存储和...

    openstack部分源码

    SwiftClient 提供了对 Swift 存储桶(Container)和对象(Object)的操作,如创建、删除存储桶,上传、下载、查询对象,以及设置权限和元数据。 这些客户端代码是开发人员与 OpenStack 服务进行交互的重要工具,...

Global site tag (gtag.js) - Google Analytics