项目三OpenStack基础环境配置与API使用

任务一  了解OpenStack基础环境配置

1.1 •数据库服务器

1.2 •消息队列服务

AMQP系统的组成

可以将生产者看作是商家,交换器是快递员,这个队列表示快递驿站,连接表示取件码,这个消费者就是我们。

商家把快递通过快递员送到快递驿站,快递驿站绑定快递的取件码,然后通过取件码通知我们去快递驿站取件。这个就是AMQP的通信流程。

任务二  了解并使用OpenStack API

2.1 •什么是RESTful API

RESTful API 是目前比较成熟的 一套Internet应用程序的API软件架构
表现 层( Representation )是指资源的外在表现形式
•URI指向资源实体,但是并不能代表其表现形式。资源可以有多种表现形式。
客户端和服务器之间传递的是资源的表现 形式。
REST 要求必须通过统一的接口来对资源执行各种操作
REST 是所有 Web 应用都应该遵守的架构设计指导原则

2.2 •OpenStackRESTful API

OpenStack 各个项目都提供了 RESTful 架构的 API 作为 对外提供的接口
API 请求示例流程

1)客户端通过HTTP发送请求,调用openstack server list命令。

2)路由模块收到HTTP请求后,将这个请求分派给对应的控制器(Controller),并且绑定一个操作(Action)。

3)每个控制器都对应一个RESTful资源,控制器是对应资源的操作集合

通用 的用户管理 API 示例

  GET /v3/users:获取所有用户的列表。

  POST /v3/users:创建一个用户。

  GET /v3/users/<UUID>:获取一个特定用户的详细信息。

  PUT /v3/users/<UUID>:修改一个用户的详细信息。

  DELETE /v3/users/<UUID>:删除一个用户。

完整 RESTful Web API 包括 3 要素
资源 地址与资源的 URI
传输 资源的表现 形式

                                     对资源的操作

2.3 •OpenStack的认证与API请求流程

1)为云管理员提供的身份端点请求一个认证令牌。

2)如果请求成功,服务器会返回一个认证令牌。

3)发送API请求,在X-Auth-Token头部需包含上一步返回的认证令牌

4)如果遇到未授权(401)的错误,则需重新请求另一个令牌。

2.4 •调用OpenStack API的方式

cURL 命令
OpenStack Python SDK
Ø 所有 OpenStack 命令行工具都是基于 Python SDK 实现的。
Ø OpenStack 兼容 Amazon EC2 API ,能够用于 OpenStack Amazon 两套系统之间的迁移。
OpenStack 命令行 工具
Ø 一个 OpenStack 项目都有一个用 Python 编写的命令行 客户端。
Ø 个统一的命令行工具 openstack 可以取代 各项目的命令行客户端。
OpenStack 仪表

2.5 •获取OpenStack认证令牌

1导出环境变量

OS_PROJECT_NAME(项目名

OS_PROJECT_DOMAIN_NAME(项目域名

OS_USERNAME(用户名

OS_PASSWORD(密码

OS_USER_ DOMAIN_NAME(用户域名

2)运行cURL命令向OpenStack云平台请求一个令牌。

环境 变量 OS_AUTH_URL 表示 OpenStack 认证端点的 URL 地址
请求成功返回 Created 201 )响应代码和一个令牌( X-Subject-Token 响应头的值)
响应体含有 一个 token 类型的 对象。

2.6 •OpenStack云平台发送API请求

1)导出环境变量OS_TOKEN,将其值设为令牌ID

2)导出环境变量OS_PROJECT_NAME

export OS_PROJECT_NAME=demo

3)导出环境变量OS_COMPUTE_API

export OS_COMPUTE_API=http://192.168.199.31:8774/v2.1

4)访问计算服务API,列出可用的实例类型。

[root@node-a ~(keystone_demo)]# curl -s -H "X-Auth-Token: $OS_TOKEN"   $OS_COMPUTE_ API/servers   | python -m json.tool

任务三  使用OpenStack命令行客户端

3.1 •为什么要使用命令行操作OpenStack

命令行 往往可以使用更多的参数,而且使用更为灵活
通常命令行操作返回结果更快,操作效率更高。
命令行 提供的命令还可以在脚本中使用,以 实现批处理操作 ,提高工作效率

★★命令行操作不够直观,不适合为普通云用户提供服务,通常是云管理员使用命令行进行配置、管理和测试等工作。

3.2 •进一步了解OpenStack客户端

3.3 •openstack命令的语法

语法格式

openstack [<全局选项>] <命令> [<命令参数>]

获取 可用的子命令列表。

openstack --help

要查看某一子命令的说明 信息。

openstack help <命令>

显示 Identity v3 的命令集。

openstack --os-identity-api-version 3 --help

对于内容较长的命令,可以使用换行符 \ 进行换行。

3.4 •执行openstack命令所需的认证

openstack 使用与 OpenStack 各项目自有命令行界面类似的认证 模式。

export OS_AUTH_URL=<用于认证的URL地址>

export OS_PROJECT_NAME=<项目名>

export OS_USERNAME=<用户名>

export OS_PASSWORD=<密码

openstack 能使用由 keystoneclient 库提供的不同类型的认证插件
通过 -- os -token -- os-url 选项(或 OS_TOKEN OS_URL 环境变量 )使用 Keystone 项目的服务 令牌进行认证。
使用 -- os -token -- os-url 选项自动选择令牌端点( token_endpoint )认证 类型。
使用 -- os -auth- url -- os -username 选项则会选择密码认证类型。

3.5 •云管理员通过openstack命令管理OpenStack云平台

云管理员使用 openstack 命令的示例 步骤

1执行命令加载云管理员admin的环境脚本。

[root@node-a ~(keystone_demo)]# source keystonerc_admin

2)通过openstack命令调用身份服务API来列出所有的项目。

[root@node-a ~(keystone_admin)]# openstack project list

3)通过openstack命令调用身份服务API来查看services项目的详细信息。

[root@node-a ~(keystone_admin)]# openstack project show services

3.6 普通云用户通过openstack命令使用OpenStack云服务

通过创建 虚拟机 实例来 示范普通云用户如何使用 openstack 命令

1)加载云用户demo的环境脚本。

[root@node-a ~]# source keystonerc_demo

2)调用计算服务API,列出该用户所关联的项目和当前可用的镜像。

[root@node-a ~(keystone_demo)]# openstack image list

3)列出可用的实例类型(flavors)。

[root@node-a ~(keystone_demo)]# openstack flavor list

4)创建一个实例。

[root@node-a ~(keystone_demo)]# openstack server create --image cirros --flavor 1 Cirros_VM1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值