云计算-OpenStack 运维开发实战:从 Restful API 到 Python SDK 全场景实现镜像上传、用户创建、云主机部署全流程

一、python-Restful Api 简介

Restful API 是一种软件架构风格,基于 HTTP 协议设计,通过统一的接口(如 URL 路径)和标准的 HTTP 方法(GET/POST/PUT/DELETE 等)实现资源(如数据、文件等)的操作,具有无状态、可缓存、客户端 - 服务器分离等特点。方法如下

  • 用 GET 请求获取资源(如查询数据)
  • 用 POST 请求创建资源(如新增数据)
  • 用 PUT 请求更新资源
  • 用 DELETE 请求删除资源

常用的库是 requests,它简化了 HTTP 请求的发送和响应处理。下面进行python调用openstack创建相应实例。

1.Python 运维开发:基于 OpenStack Restful API 实现镜像上传

使用 OpenStack all-in-one 镜像,创建 OpenStack Python 运维开发环境。云主机的用户/ 密码为:“root/Abc@1234”,OpenStack 的域名/账号/密码为:“demo/admin/000000”。 提示说明:python 脚本文件头建议加入“#encoding:utf-8”避免编码错误;测试脚本代 码用 python3 命令执行与测试。 在 controller 节点的/root 目录下创建 api_image_manager.py 脚本,编写 python 代码对接 OpenStack API,完成镜像的创建与上传。创建之前查询是否存在“同名镜像”,如果存在 先删除该镜像。

(1)创建镜像:要求在 OpenStack 私有云平台中上传镜像 cirros-0.3.4-x86_64-disk.img, 名字为 cirros001,disk_format 为 qcow2,container_format 为 bare。

(2)查询镜像:查询 cirros001 的详细信息,并以 json 格式文本输出到控制台。

1.执行 api_image_manager.py 脚本,成功创建镜像

    
 做之前镜像记得上传
 openstack image create --disk-format qcow2 --container-format bare --file /root/cirros-0.3.1-x86_64-
 --------------------------------------------
 #!/usr/bin/python3.6
 # cofing=utf-8
 import  json,requests
 url = "http://controller:9292/v2/images"
 token='gAAAAABkIlT50YY3ZGgskCUKJ6nMEgmsvgqgFwxUjGFLXEtC8bCaY2C1R1KtqQnrHMhCuNpKwNlxKIHb85ZpV9CIlPV5JYBzUaI13yMOImyDOhgOXVSgeEVslPOo_1cWMHp27Q4hVG53KVMczlbFluFIC9y9oJ4WRyb-KXGG46fXYyr'
 headers= {"Content-Type":"application/json",'X-Auth-Token':token}
 headers_img= {"Content-Type":"application/octet-stream",'X-Auth-Token':token}
 images = requests.get(url,headers=headers).json()
 for i in images['images']:
     if i['name']=='cirros001':
         delete = requests.delete(f"{url}/{i['id']}",headers=headers)
         print(delete)
 create = requests.post(url,data=json.dumps({"container_format": "bare", "disk_format": "qcow2", "name": "cirros001"}),headers=headers).json()
 put = requests.put(f"http://controller:9292{create['file']}",data=open("/root/cirros-0.3.4-x86_64-disk.img","rb"),headers=headers_img)
 print(put)
 print(create) [root@controller python]# chmod +x api_image_manager.py 
 [root@controller python]# ./api_image_manager.py 

2.python-usere使用Restful API创建用户

在提供的OpenStack私有云平台上,使用T版本的“openstack-python-dev”镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/Abc@1234”。使用python request库和OpenStack Restful APIs,在/root目录下,创建api_manager_identity.py文件,编写python代码,代码实现以下任务:

(1)首先实现查询用户,如果用户名称“user_demo”已经存在,先删除。

(2)如果不存在“user_demo”,创建该用户,密码设置为“1DY@2022”。

(3)创建完成后,查询该用户信息,查询的body部分内容控制台输出,同时json格式的输出到文件当前目录下的user_demo.js文件中,json格式要求indent=4。

 vi create_user.py
 ---------api_manager_identity.py--------------------------
 #!/usr/bin/python3.6
 # cofing=utf-8
 import  time,requests,json
 token = 'gAAAAABj-J00eE_MPHoIk_x179k3RsdJuvLaAITL8szIIdWq8o7g7bUuYly4HTEQtHZcp0_-tx-ehYIrsHJmoyESScPoBChGOYXrJAWD_pF0VGBslJuoxyuJwCMSY-iHkdtgxpdIrTP3EK2bJjDs2CjGosXARZQZsLh-47cAN1hXjOS0'
 headers = {"Content-Type": "application/json","X-Auth-Token":token}
 users = requests.get("http://controller:5000/v3/users",headers

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

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

相关文章

RxJava 在 Android 中的深入解析:使用、原理与最佳实践

前言RxJava 是一个基于观察者模式的响应式编程库,它通过可观察序列和函数式操作符的组合,简化了异步和事件驱动程序的开发。在 Android 开发中,RxJava 因其强大的异步处理能力和简洁的代码风格而广受欢迎。本文将深入探讨 RxJava 的使用、核心…

面试实战 问题三十 HTTP协议中TCP三次握手与四次挥手详解

HTTP协议中TCP三次握手与四次挥手详解 在HTTP协议中,连接建立和断开依赖于底层的TCP协议。虽然HTTP本身不定义握手过程,但所有HTTP通信都通过TCP三次握手建立连接,通过四次挥手断开连接。以下是详细解析:一、TCP三次握手&#xff…

读《精益数据分析》:双边市场的核心指标分析

双边市场数据分析指南:从指标体系到实战落地(基于《精益数据分析》框架)在互联网平台经济中,双边市场(如电商、出行、外卖、自由职业平台等)的核心矛盾始终是"供需平衡与效率优化"。这类平台连接…

Queue参考代码

queue.c #include "queue.h" #include "stdlib.h" // 初始化循环队列 void initializeCircularQueue(CircularQueue *cq, uint8_t *buffer, uint32_t size) {cq->front 0;cq->rear 0;cq->count 0;cq->size size;cq->data buffer; }…

通过时间计算地固系到惯性系旋转矩阵

通过时间计算地固系到惯性系旋转矩阵 1. 引言 在航天工程和卫星导航领域,经常需要在地固坐标系(ECEF)和惯性坐标系(ECI)之间进行转换。本文将详细介绍如何根据UTC时间计算这两个坐标系之间的旋转矩阵,并提供完整的C语言实现。 2. 基本概念 2.1 坐标系定义…

【Datawhale AI 夏令营】金融文档分析检索增强生成系统的架构演变与方法论进展

# **金融文档分析检索增强生成系统的架构演变与方法论进展****第一部分:基础原则和基线系统分析****第一部分:金融领域检索增强生成范式的解构****第二部分:基线剖析:流水线的二分法****同步轨迹 (SimpleRAG)****异步改进 (AsyncS…

C语言相关简单数据结构:顺序表

目录 1.顺序表的概念及结构 1.1 线性表 如何理解逻辑结构和物理结构? 1.2 顺序表分类 顺序表和数组的区别: 顺序表分类: 静态顺序表 动态顺序表 1.3 动态顺序表的实现 初始化 尾插 头插 尾删 头删 在指定位置之前插入数据 删…

nginx配置代理服务器

Nginx 作为代理服务器时,主要用于反向代理(最常用,转发客户端请求到后端服务)或正向代理(较少用,为客户端提供访问外部网络的代理)。以下是两种场景的具体配置示例: 一、反向代理配置…

MySQL数据库知识体系总结 20250813

一、数据库的原理 1.数据库的分类 我们可以根据数据的结构类型,将数据分成三类,分别是:结构化数据,半结构化数据,非结构化数据。 要点:对于结构化数据来讲通常是先有结构再有数据。要点:对于半…

C++ 中构造函数参数对父对象的影响:父子控件管理机制解析

文章目录C 中构造函数参数对父对象的影响:父子控件管理机制解析1. Qt 中的父对象管理机制2. 构造函数传递父对象的不同方式2.1. 父控件是 QWidget parent(通用方式)分析:2.2. 父控件是 Books_Client parent(限制父控件…

直播美颜SDK开发实战:高性能人脸美型的架构与实现

在直播行业里,美颜已经不再是锦上添花,而是标配中的标配。无论是游戏主播、带货达人,还是唱歌、跳舞的才艺主播,直播美颜SDK往往决定了用户的第一印象和停留时长。尤其是高性能人脸美型技术,不仅能让主播的五官更加自然…

JavaWeb(苍穹外卖)--学习笔记18(Apache POI)

前言 本篇文章是学习B站黑马程序员苍穹外卖的学习笔记📑。我的学习路线是Java基础语法-JavaWeb-做项目,管理端的功能学习完之后,就进入到了用户端微信小程序的开发,用户端开发的流程大致为用户登录—商品浏览(其中涉及…

OpenJDK 17 源码 安全点轮询的信号处理流程

OpenJDK 17 源码,安全点轮询的信号处理流程如下(重点分析安全点轮询相关部分):核心信号处理流程信号触发:当线程访问安全点轮询内存页时(SafepointMechanism::is_poll_address),会触…

InfluxDB 在工业控制系统中的数据监控案例(一)

工业控制系统数据监控的重要性**在工业领域,生产过程的复杂性和连续性使得数据监控成为保障生产稳定运行的关键环节。通过实时收集、处理和分析生产数据,企业能够及时掌握设备运行状态、产品质量信息以及生产流程的各项参数,从而为生产决策提…

嵌入式学习(day26)frambuffer帧缓冲

一、UI技术: User interface(1)framebuffer: 帧缓冲、帧缓存技术 Linux内核专门为图形化显示提供的一套应用程序接口。流程如下:1. 打开显示设备 (/dev/fb0) 2. 获取显示设备相关参数(分辨率,像素格式)---》…

408每日一题笔记 41-50

答案:A 解析:CSMA/CD 协议里,“争用期” 就是信号在总线上最远两个端点之间往返传输的时间,也叫冲突窗口,选 A。

【物联网】基于树莓派的物联网开发【26】——树莓派开启串口并配置串口助手Minicom

串口配置 (1)打开串口,终端输入命令: sudo raspi-config (2)串口设置选择Interfacing Options→Serial port→No→Yes→ok(3)设置开启,打开串口 (4&#xff0…

考研/考公知识共享平台的设计与实现-项目分享

考研/考公知识共享平台的设计与实现-项目分享项目介绍项目摘要学生前台用例图管理员用例图系统流程图系统功能结构图实体图学生信息实体图资料信息管理实体图报考指南管理写在最后项目介绍 使用者:管理员、学生前台、学生后台 开发技术:MySQLJavaSpring…

一键设置 NTP 时区的脚本(亲测,适用于部署 K8S 的前置环境)

文章目录一、时区和时间同步的配置命令二、完整脚本ntp_timezone_setup.sh三、使用方法3.1、创建脚本3.2、赋予执行权限3.3、运行脚本3.4、验证一、时区和时间同步的配置命令 整理用于做时区和时间同步的配置几条命令分别如下: 1️⃣ 编辑 chrony 配置 vim /etc/…

BPMN编辑器技术实现总结AI时代的工作流编辑器

项目概述 基于 diagram.js 的 BPMN 流程设计器,通过依赖注入(DI)实现模块化扩展,自定义模块扩展与SVG图形渲染。后端工作流引擎自定义统一任务调度函数,实现异构模型统一调用。 核心技术架构 1. diagram.js 架构基础 核心模块组成 Canv…