项目三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 •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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…

斯巴达(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;用于保存调用函数…

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系统下…

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

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

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

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

汉化版PSAI全面测评,探索国产AI绘画软件的创新力量

引言 随着AI技术的飞速发展&#xff0c;图像处理和绘画领域迎来了新的变革。作为一名AIGC测评博主&#xff0c;今天我们测评的是一款国产AI绘画软件——StartAI&#xff0c;一句话总结&#xff1a;它不仅在技术上毫不逊色于国际大牌&#xff0c;更在用户体验和本地化服务上做到…

AI 克隆声音,只需 3 分钟(附最全教程)

作者&#xff1a;寒斜 继生成式文本大模型 Chatgpt&#xff0c;生成式图片 Stablediffusion 之后生成式语音 Text To Speech 在开源社区也出现了一匹黑马&#xff0c;就是 GPT-Sovits [ 1] 。 之所以说他是黑马&#xff0c;让人觉得惊艳&#xff0c;是因为在语音效果克隆上做…

数据分析必备:一步步教你如何用matplotlib做数据可视化(6)

1、Matplotlib 网格 axes对象的grid()函数将图中网格的可见性设置为on或off。还可以显示网格的主要/次要(或两者)刻度。另外&#xff0c;可以在grid()函数中设置color&#xff0c;linestyle和linewidth属性。 参考以下示例代码 import matplotlib.pyplot as plt import numpy…

14K屏FPGA通过MIPI接口点亮

一、屏参数 屏分辨率为13320*5120&#xff0c;MIPI接口8 LANE。 二、驱动接口电路 屏偏置电压5.5V&#xff0c;逻辑供电1.8V。8 LANE MIPI&#xff0c;2 PORT。 三、MIPI DSI规范 DCS (Display Command Set)&#xff1a;DCS是一个标准化的命令集&#xff0c;用于命令模式的显…

奇怪的bug

奇怪的bug 合集 1.不可见字符集问题 起因是在自己做小项目的时候&#xff0c;通过lombok的data注解&#xff0c;默认生成实体类的get set方法 但是在某个方法中获取一个属性值的时候显示找不到该属性值的get方法&#xff0c;具体直接贴图 我以为是lombok的配置问题&#xff0c…

ubuntu设置静态ip地址

首先&#xff0c;查看ip地址可以使用&#xff1a; ifconfig 例如&#xff0c;出现如下结果&#xff1a; 然后&#xff0c;需要查看本地的gateway以及dns&#xff0c;可以使用&#xff1a; nmcli device show例如&#xff1a; 接下来说明一下如何设置静态ip&#xff1a;