云計算-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
英文地址,請注明出處:http://en.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…