一種基於雲平臺的虛擬機初始化方法及裝置與流程
2023-04-23 08:13:16 4

本發明涉及雲計算領域,更具體地說,涉及一種基於雲平臺的虛擬機初始化方法及裝置。
背景技術:
雲計算(cloudcomputing)是基於網際網路的相關服務的增加、使用和交付模式,通常涉及通過網際網路來提供動態易擴展且經常是虛擬化的資源。雲計算將計算分布在大量的分布式計算機上,而非本地計算機或遠程伺服器中,企業數據中心的運行將與網際網路更相似。這使得企業能夠將資源切換到需要的應用上,根據需求訪問計算機和存儲系統。目前,用戶申請虛擬機時,需要用戶根據創建好的虛擬機自行輸入各種配置參數,例如:ip地址、磁碟容量、主機名等信息,設置步驟繁瑣,客戶體驗效果較差。
因此,如何對虛擬機進行初始化,為用戶在設置虛擬機時提供便利,是本領域技術人員需要解決的問題。
技術實現要素:
本發明的目的在於提供一種基於雲平臺的虛擬機初始化方法及裝置,以實現對虛擬機進行初始化,為用戶提供便利。
為實現上述目的,本發明實施例提供了如下技術方案:
一種基於雲平臺的虛擬機初始化方法,包括:
接收用戶發送的虛擬機創建請求;所述虛擬機創建請求中包括虛擬機的配置參數;
利用所述虛擬機創建請求創建虛擬機,並根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化。
其中,所述虛擬機創建請求中攜帶的配置參數包括以下參數中的至少一者:ip地址信息、磁碟容量信息、主機名信息、用戶名信息、用戶密碼信息以及時鐘同步信息。
其中,所述利用所述虛擬機創建請求創建虛擬機包括:
調用虛擬機雲平臺接口,通過模板創建虛擬機。
其中,虛擬機模板創建方法包括:
創建目標虛擬機,所述目標虛擬機為需要轉換為模板的虛擬機;
在所述目標虛擬機上安裝cloudbase-init軟體,並根據作業系統的系統位數選擇相應的版本,調整cloudbase-init.conf文件,選擇相應的plugin;
將編寫的shell腳本放置到指定目錄下,設定執行權限,然後在rc.local編寫調用腳本;將配置完的虛擬機轉為模板,並導入虛擬機雲平臺。
其中,所述根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化,包括:
根據所述虛擬機創建請求攜帶的配置參數創建iso文件,將所述iso文件插入虛擬機光碟機;啟動虛擬機,通過cloudinit讀取所述iso文件內的配置參數,並對所述虛擬機的配置參數進行初始化。
一種基於雲平臺的虛擬機初始化裝置,包括:
請求接收模塊,用於接收用戶發送的虛擬機創建請求;所述虛擬機創建請求中包括虛擬機的配置參數;
虛擬機創建模塊,用於利用所述虛擬機創建請求創建虛擬機;
初始化模塊,用於根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化。
其中,所述虛擬機創建請求中攜帶的配置參數包括以下參數中的至少一者:ip地址信息、磁碟容量信息、主機名信息、用戶名信息、用戶密碼信息以及時鐘同步信息。
其中,所述虛擬機創建模塊調用虛擬機雲平臺接口,通過模板創建虛擬機。
其中,本方案還包括:
虛擬機模板創建模塊,用於創建目標虛擬機,所述目標虛擬機為需要轉換為模板的虛擬機;在所述目標虛擬機上安裝cloudbase-init軟體,並根據作業系統的系統位數選擇相應的版本,調整cloudbase-init.conf文件,選擇相應的plugin;將編寫的shell腳本放置到指定目錄下,設定執行權限,然後在rc.local編寫調用腳本;將配置完的虛擬機轉為模板,並導入虛擬機雲平臺。
其中,所述初始化模塊包括:
iso文件創建單元,用於根據所述虛擬機創建請求攜帶的配置參數創建iso文件,將所述iso文件插入虛擬機光碟機;
配置參數初始化單元,用於啟動虛擬機,通過cloudinit讀取所述iso文件內的配置參數,並對所述虛擬機的配置參數進行初始化。
通過以上方案可知,本發明實施例提供的一種基於雲平臺的虛擬機初始化方法,包括:接收用戶發送的虛擬機創建請求;所述虛擬機創建請求中包括虛擬機的配置參數;利用所述虛擬機創建請求創建虛擬機,並根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化。
可見,在本方案中,用戶在發送創建虛擬機的請求時,將配置參數一同發送至系統,這樣系統在創建虛擬機後,便可根據上傳的配置參數對創建好的虛擬機進行初始化,用戶無需安裝完虛擬機後再進入虛擬機進行內部配置,為用戶提供極大便利;本發明還公開了一種基於雲平臺的虛擬機初始化裝置,同樣能實現上述技術效果。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例公開的一種基於雲平臺的虛擬機初始化方法流程示意圖;
圖2為本發明實施例公開的一種基於雲平臺的虛擬機初始化方法時序圖;
圖3為本發明實施例公開的一種基於雲平臺的虛擬機初始化裝置結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明實施例公開了一種基於雲平臺的虛擬機初始化方法及裝置,以實現對虛擬機進行初始化,為用戶提供便利。
參見圖1,本發明實施例提供的一種基於雲平臺的虛擬機初始化方法,包括:
s101、接收用戶發送的虛擬機創建請求;所述虛擬機創建請求中包括虛擬機的配置參數;
其中,所述虛擬機創建請求中攜帶的配置參數包括以下參數中的至少一者:ip地址信息、磁碟容量信息、主機名信息、用戶名信息、用戶密碼信息以及時鐘同步信息。
具體的,在本實施例中,對虛擬機的初始化,是用戶在申請創建虛擬機時,一同填寫的虛擬機ip地址、磁碟容量、主機名等信息,經過雲平臺的審批後,系統會根據用戶填寫的信息自動設置虛擬機的ip地址、磁碟容量、主機名等,用戶無需進入虛擬機後進行設置,為用戶提供極大便利。本方法同樣適用於初始化虛擬機的其它信息,例如創建用戶、設置用戶密碼、時鐘同步等。
s102、利用所述虛擬機創建請求創建虛擬機,並根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化。
其中,所述利用所述虛擬機創建請求創建虛擬機包括:調用虛擬機雲平臺接口,通過模板創建虛擬機。
其中,虛擬機模板創建方法包括:
創建目標虛擬機,所述目標虛擬機為需要轉換為模板的虛擬機;
在所述目標虛擬機上安裝cloudbase-init軟體,並根據作業系統的系統位數選擇相應的版本,調整cloudbase-init.conf文件,選擇相應的plugin;
將編寫的shell腳本放置到指定目錄下,設定執行權限,然後在rc.local編寫調用腳本;將配置完的虛擬機轉為模板,並導入虛擬機雲平臺。
具體的,在本方案通過模板創建虛擬機,其中虛擬機模板的製作過程為:
windows:首先創建需要轉換為模板的虛擬機,安裝cloudbase-init軟體,根據作業系統系統位數選擇相應的版本,安裝後需調整cloudbase-init.conf文件,選擇相應的plugin。
linux:將編寫的shell腳本放置到指定目錄下,賦予執行權限,然後在rc.local編寫調用腳本。配置好後將虛擬機轉為(或導出)模板,然後將模板導入到雲平臺。
基於上述實施例,所述根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化,包括:
根據所述虛擬機創建請求攜帶的配置參數創建iso文件,將所述iso文件插入虛擬機光碟機;啟動虛擬機,通過cloudinit讀取所述iso文件內的配置參數,並對所述虛擬機的配置參數進行初始化。
具體的,本方案以模板創建虛擬機的情況下,以iso文件為數據載體、cloudinit為腳本執行引擎來實現的,其中windows是基於cloudbase-init來實現初始化程序的調用,linux基於開機自啟動程序rc.d實現。
具體的,在本方案中,調用虛擬機平臺(如vcenter等)接口,通過模板創建虛擬機;虛擬機創建完成後,根據用戶參數創建iso,並將iso文件上傳到指定存儲位置,並將其插入虛擬機光碟機;調用虛擬機開機接口;cloudinit執行完成彈出iso文件,完成。
參見圖2,為本實施例提供的基於雲平臺的虛擬機初始化方法時序圖;用戶通過雲海系統的界面向虛擬機控制中心發送請求,虛擬控制中心接收到請求後創建虛擬機;雲海系統查詢到虛擬機創建成功後,便根據用戶輸入的配置參數創建iso文件,並將iso文件插入新建的虛擬機光碟機,啟動虛擬機後,通過cloudinit執行該文件,對虛擬機的參數進行修改,並將iso從虛擬機光碟機中彈出,虛擬機創建成功;需要說明的是,用戶輸入配置參數後,便不需要用戶執行任何操作,系統便可自動對新創建的虛擬機進行初始化,為用戶提供方便。
具體的,在本實施例中,虛擬機創建請求中攜帶的配置參數包括以下參數中的至少一者:ip地址信息、磁碟容量信息、主機名信息等信息;下面對初始化ip地址、磁碟容量和主機名為例進行說明:
1)初始化ip
通過雲平臺創建虛擬機後,可從用戶輸入的配置參數中獲取虛擬機網卡的mac地址。將mac地址寫入數據載體iso文件,插入虛擬機,cloudinit腳本根據mac地址查找網卡信息,修改網卡ip等信息。
windows:通過cloudbase-init的networkconfigplugin插件來實現;
linux:自主編寫shell腳本,修改網卡來實現。
2)初始化磁碟
將用戶填寫的磁碟信息寫入數據載體iso文件,插入虛擬機,cloudinit讀取磁碟信息,初始化虛擬機磁碟。
windows:通過磁碟分區工具diskpart實現;
linux:自主編寫shell腳本,通過fdisk實現。
3)初始化主機名
將用戶填寫的主機名信息寫入數據載體iso文件,插入虛擬機,cloudinit讀取主機名,初始化主機名;
windows:通過cloudbase-init的sethostnameplugin來實現,修改主機名後需重啟系統才能完成;
linux:自主編寫shell腳本,修改/etc/hosts文件等來實現。
可見,在本方案中,可在安裝作業系統前設置虛擬機的ip、磁碟容量、主機名等信息,與雲平臺的業務申請配合使用,能夠為雲平臺的管理人員、用戶提供極大的便利性。
下面對本發明實施例提供的虛擬機初始化裝置進行介紹,下文描述的虛擬機初始化裝置與上文描述的虛擬機初始化方法可以相互參照。
參見圖3,本發明實施例提供的一種基於雲平臺的虛擬機初始化裝置,包括:
請求接收模塊100,用於接收用戶發送的虛擬機創建請求;所述虛擬機創建請求中包括虛擬機的配置參數;
虛擬機創建模塊200,用於利用所述虛擬機創建請求創建虛擬機;
初始化模塊300,用於根據所述虛擬機創建請求攜帶的配置參數,對虛擬機的配置參數進行初始化。
其中,所述虛擬機創建請求中攜帶的配置參數包括以下參數中的至少一者:ip地址信息、磁碟容量信息、主機名信息、用戶名信息、用戶密碼信息以及時鐘同步信息。
基於上述實施例,所述虛擬機創建模塊調用虛擬機雲平臺接口,通過模板創建虛擬機。
基於上述實施例,還包括:
虛擬機模板創建模塊,用於創建目標虛擬機,所述目標虛擬機為需要轉換為模板的虛擬機;在所述目標虛擬機上安裝cloudbase-init軟體,並根據作業系統的系統位數選擇相應的版本,調整cloudbase-init.conf文件,選擇相應的plugin;將編寫的shell腳本放置到指定目錄下,設定執行權限,然後在rc.local編寫調用腳本;將配置完的虛擬機轉為模板,並導入虛擬機雲平臺。
基於上述實施例,所述初始化模塊包括:
iso文件創建單元,用於根據所述虛擬機創建請求攜帶的配置參數創建iso文件,將所述iso文件插入虛擬機光碟機;
配置參數初始化單元,用於啟動虛擬機,通過cloudinit讀取所述iso文件內的配置參數,並對所述虛擬機的配置參數進行初始化。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。