公司要自己開發(fā)私有云管理平臺,我這邊負責vmware部分的后臺接口編寫。
創(chuàng)新互聯建站主打移動網站、網站建設、做網站、網站改版、網絡推廣、網站維護、域名注冊、等互聯網信息服務,為各行業(yè)提供服務。在技術實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務,根據網站的內容與功能再決定采用什么樣的設計。最后,要實現符合網站需求的內容、功能與設計,我們還會規(guī)劃穩(wěn)定安全的技術方案做保障。主要基于vmware官方的 python 接口 pyvmomi進行二次封裝,
主要實現有虛擬機開關機注銷;
虛擬機增刪磁盤;
虛擬機快照增刪還原;
虛擬機 html5的console界面
虛擬機網絡管理
zabbix 監(jiān)控 esxi的磁盤使用率
zabbix 接受轉發(fā)esxi的報警信息
我把 克隆虛擬機,虛擬機 html5的console界面,虛擬機快照管理 這幾個代碼的放出,水平有限,大神勿噴,并且有部分涉及隱私的地方做了處理,供大家參考下,貼出的只是第一版,沒有錯誤捕捉
需要環(huán)境:vcenter 5.1-6.0, python3.5 ,django 1.8 ,redis,mysql,celery(python 異步后臺任務)等
第二個介紹展示html5的虛擬機console
只適用于vc ,5.x 不適用于6.x,6.x改了登陸驗證方式 暫時還沒搞定
過程,收到前端請求的,找到對應虛擬機,生成sessionTicket和 thumbprint,
拼接對應的網址,當作一個 HttpResponseRedirect 返回前端
先上下效果
輸入 http://10.20.11.4:8001/viewconsole.py?IP=10.20.13.158
代碼如下
import atexit
import ssl
import sys
import time
import OpenSSL
import os
from pyVim.connect import SmartConnect, Disconnect
from pyVmomi import vim
from django.http import HttpResponse
from django.http import HttpResponseRedirect
def viewconsole(request):
vmip = request.GET.get('IP')
respone=main(vmip)
return HttpResponseRedirect(a)
return HttpResponse(a)
def get_vm(content, name): 實例化虛擬機
vm = None
container = content.viewManager.CreateContainerView(
content.rootFolder, [vim.VirtualMachine], True)
for c in container.view:
if c.name == name:
vm = c
break
return vm
def main(vmip):
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
context.verify_mode = ssl.CERT_NONE
si = SmartConnect(host="######",
user="############",
pwd="############",
port=443,sslContext=context)
atexit.register(Disconnect, si)
content = si.RetrieveContent()
vm = get_vm(content, "{0}".format(vmip))
vm_moid = vm._moId
vcenter_data = content.setting
vcenter_settings = vcenter_data.setting
console_port = '7331'
for item in vcenter_settings:
key = getattr(item, 'key')
if key == 'VirtualCenter.FQDN':
vcenter_fqdn = getattr(item, 'value')
session_manager = content.sessionManager
session = session_manager.AcquireCloneTicket()
vc_cert = ssl.get_server_certificate(("vc的ip",443))
vc_pem = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,
vc_cert)
vc_fingerprint = vc_pem.digest('sha1')
url="http://vc的ip:7331/console/?vmId={2}&vmName={3}&host={4}&sessionTicket={5}&thumbprint={6}".format("",console_port,vm_moid,vmip,vcenter_fqdn,session,vc_fingerprint.decode())
return url
另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。