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

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

1.1 •数据库服务器

1.2 •消息队列服务

•AMQP系统的组成

任务二  了解并使用OpenStack API

2.1 •什么是RESTful API

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

2.2 •OpenStack的RESTful 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/bicheng/30383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车IVI中控开发入门及进阶(三十一):视频知识扫盲

有效的视频资源管理需要集成许多不同的底层技术,共同为用户提供给定应用程序的最佳体验。其中许多技术是从早期电视广播中使用的技术演变而来的。其他方法,如用于通过网络流式传输视频的压缩方法,相对较新且不断发展。 以下详细概述了与图形和视频处理和传输相关的一些基本…

云上宝库:三大厂商对象存储安全性及差异性比较

前言 看了几家云厂商的对象存储&#xff0c;使用上有相似也有差异&#xff0c;聊聊阿里云、腾讯云、京东云三家对象存储在使用中存在的风险以及防护措施。 0x01 云存储命名 阿里云对象存储OSS(Object Storage Service)&#xff0c;新用户免费试用三个月&#xff0c;存储包容…

安装idea后配置的全局配置

1、打开IDEA应用&#xff1a;Customize→All settings...&#xff0c;如果启动IDEA后&#xff0c;默认打开的是之前的项目&#xff0c;可以关闭当前项目&#xff1a;File→Close Project&#xff0c;就退到全局配置界面了。 2、打开全局配置界面&#xff1a;Editor→File Encod…

FreeRTOS(一)

一.汇编指令 读内存&#xff1a;Load LDR RO&#xff0c;[R1&#xff0c;#4];读地址"R14"&#xff0c;得到的4字节数据存入RO 写内存&#xff1a;Store STR RO&#xff0c;[R1&#xff0c;#4]:把R0的4字节数据写入地址"R14" 加减 ADD RO.R1&#xff0c;R2R…

torch.topk用法

torch.topk用法 介绍使用示例 介绍 官网介绍&#xff1a;https://pytorch.org/docs/stable/generated/torch.topk.html 在指定维度选取k个最大&#xff08;最小&#xff09;的值。 使用示例 values torch.tensor([[2, 1, 3], [1, 2, 3]]) # values # tensor([[2, 1, 3], #…

项目拆分 多模块原则

多模块拆分的必要性 使用Java技术开发的工程项目&#xff0c;无论是数据处理系统还是Web网站&#xff0c;随着项目的不断发展&#xff0c;需求的不断细化与添加&#xff0c;工程项目中的代码越来越多&#xff0c;包结构也越来越复杂这时候工程的进展就会遇到各种问题&#xff…

斯巴达(Spartanhost)VPS的性能评测

原创原文链接&#xff1a;详细斯巴达&#xff08;Spartanhost&#xff09;VPS的性能和购买价值评测 | BOBO Blog (soulcloser.com)https://www.soulcloser.com/3398/ 引言 最近看了全球的VPS商家&#xff0c;想搞台网站高性能的服务器&#xff0c;发现一个特别有意思的商家竟…

Mathtype7永久无限免费安装包下载地址2024最新方法步骤

亲爱的数学爱好者们&#xff0c;今天我要分享一个让数学表达变得超级简单的神器——Mathtype7最新破解版&#xff01;&#x1f389; 这不仅仅是个软件&#xff0c;而是打开高效学习和工作的钥匙。准备好了吗&#xff1f;让我们一起探索这个神奇的工具&#xff01; MathType最新…

通过ModelScope开源Embedding模型将图片转换为向量

本文介绍如何通过ModelScope魔搭社区中的视觉表征模型将图片转换为向量&#xff0c;并入库至向量检索服务DashVector中进行向量检索。 ModelScope魔搭社区旨在打造下一代开源的模型即服务共享平台&#xff0c;为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品&#xf…

空间复杂度的相关概念

1. 空间复杂度 空间复杂度&#xff08;space complexity&#xff09;用于衡量算法占用内存空间随着数据量变大时的增长趋势。 统计哪些空间&#xff1a; ● 暂存数据&#xff1a;用于保存算法运行过程中的各种常量、变量、对象等。 ● 栈帧空间&#xff1a;用于保存调用函数…

火山引擎字节跳动豆包AI绘画接口

import base64 import os.pathfrom volcengine.visual.VisualService import VisualServicedef paint_dance(desc):visual_service VisualService()visual_service.set_ak(你的AK)visual_service.set_sk(你的SK)# 高美感通用V1.3-文生图form {"req_key": "hig…

鸿蒙HarmonyOS $r(““)与$rawfile(““)的区别

在鸿蒙&#xff08;HarmonyOS&#xff09;开发中&#xff0c;$r(“”) 和 $rawfile(“”) 是两种不同的资源引用方式&#xff0c;它们分别用于引用不同的资源类型。 1、$r(“”) $r 函数通常用于引用字符串、颜色、尺寸、样式等定义在资源文件&#xff08;如 strings.json, c…

keil MDK自动生成带版本bin文件

作为嵌入式单片机开发&#xff0c;在Keil MDK&#xff08;Microcontroller Development Kit&#xff09;中开发完编译完后&#xff0c;经常需要手动进行版本号添加用于发版&#xff0c;非常麻烦&#xff0c;如果是对外发行的话&#xff0c;更容易搞错&#xff0c;特此码哥提供一…

SpringCloud Alibaba Sentinel 流量控制之流控模式实践总结

官网文档&#xff1a;https://sentinelguard.io/zh-cn/docs/flow-control.html wiki地址&#xff1a;https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6 本文版本&#xff1a;spring-cloud-starter-alibaba&#xff1a;2.2.0.RELEASE 如下图所…

企业如何选择合适的CRM工具?除Salesforce之外的10大主流选择

对比salesforce&#xff0c;其他10款优秀CRM&#xff1a;纷享销客CRM、Zoho CRM、腾讯企点、销售易、企业微信 (WeCom)、Odoo CR、OroCRM、金蝶、用友CRM、EspoCRM 虽然Salesforce以其全面的功能和强大的市场占有率在海外收获了许多客户&#xff0c;但Salesforce在国内市场的接…

多环境镜像晋级/复用最佳实践

作者&#xff1a;木烟 本文主要介绍镜像构建部署场景&#xff0c;多环境镜像晋级/复用最佳实践&#xff0c;保证“所发即所测”。 场景介绍 应用研发场景有效地管理镜像产物是确保软件快速、安全、可靠部署的关键环节。通常一个应用研发需要经过测试、预发、生产各个阶段&am…

Windows下MySQL数据库定期备份SQL文件与删除历史备份文件.bat脚本

目录 一、功能需求 二、解决方案 (1)新建文件夹及批处理文件 (2)编写备份脚本 ①完整脚本 ②参数修改 (3)编写定期删除备份脚本 ①根据文件名识别日期进行删除 ② 根据文件的修改日期删除 (4)设置定时器 (5)常见报错与处理 一、功能需求 在Windows系统下…

C++使用Poco库指定网卡去接收组播数据

0x00 1、以下代码封装了一个UDP接收组播数据的类&#xff0c;第一个构造函数 Poco::Net::DatagramSocket 类可以实现UDP单播数据的接收、发送以及往组播发送数据&#xff0c;第二个构造函数使用Poco::Net::MulticastSocket类去接收组播数据&#xff0c;UdpUnit类中成员函数Rec…

minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析

minSDK和targetSDK&#xff0c;这两者相当于一个区间。你能够用到targetSDK中最新的API和最酷的新功能&#xff0c;但又需要向后(向下)兼容到minSDK&#xff0c;保证这个区间内的设备都能够正常的执行你的APP。换句话说&#xff0c;想使用Android刚刚推出的新特性&#xff0c;但…

JAVA 注解搜索工具类与注解原理讲解(获取方法和类上所有的某个注解,父类继承的注解也支持获取)

文章目录 JAVA 注解搜索工具类与注解原理讲解&#xff08;获取方法和类上所有的某个注解&#xff0c;父类继承的注解也支持获取&#xff09;代码测试方法上加注解&#xff0c;类上不加类上加注解、方法上加注解 注解原理性能测试 JAVA 注解搜索工具类与注解原理讲解&#xff08…