本發(fā)明涉及Openstack云平臺(tái)技術(shù)領(lǐng)域,具體涉及一種Openstack云平臺(tái)自定義部署系統(tǒng)及部署方法。
背景技術(shù):
隨著云技術(shù)方案的成熟,Openstack組件的模塊化極大提高了云技術(shù)的靈活性,Openstack云平臺(tái)也越來越廣泛應(yīng)用到各種領(lǐng)域。而目前市場(chǎng)上擁有的Openstack云平臺(tái)基本上都是需要按照固有的方案部署,在企業(yè)云計(jì)算轉(zhuǎn)型時(shí),由于只能采用固有的Openstack云平臺(tái)部署方案,基本無法利用現(xiàn)有的設(shè)備資源,而需購(gòu)買大量的新機(jī)器才能夠完成云平臺(tái)的部署,造成對(duì)現(xiàn)有設(shè)備資源極大浪費(fèi)。
因此,亟需一種適用于根據(jù)用戶自定義的部署方案進(jìn)行Openstack云平臺(tái)部署的技術(shù)方案。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種Openstack云平臺(tái)自定義部署系統(tǒng)及部署方法,根據(jù)用戶需求設(shè)置Openstack云平臺(tái)部署結(jié)構(gòu)。
為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是:一種Openstack云平臺(tái)自定義部署系統(tǒng),所述Openstack云平臺(tái)包括多個(gè)Openstack組件,包括:
組件安裝執(zhí)行模塊,用于創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;多個(gè)執(zhí)行單元共同實(shí)現(xiàn)各Openstack組件的協(xié)作安裝;
控制模塊,用于獲取用戶指定的Openstack云平臺(tái)部署模式;根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置安裝模式,所述安裝模式包括待安裝的Openstack云平臺(tái)的結(jié)構(gòu)和各云平臺(tái)節(jié)點(diǎn)需要安裝的組件;通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的協(xié)作安裝;
配置模板分發(fā)模塊,用于將各Openstack組件的配置模板發(fā)送到Openstack云平臺(tái)的各云平臺(tái)節(jié)點(diǎn)上。
在上述技術(shù)方案的基礎(chǔ)上,所述Openstack云平臺(tái)自定義部署系統(tǒng)還包括用戶接口定義模塊,用于根據(jù)用戶指定的Openstack云平臺(tái)部署模式添加和部署Openstack云平臺(tái)的用戶接口。
在上述技術(shù)方案的基礎(chǔ)上,所述用戶接口定義模塊包括:
用戶接口單元,用于添加和部署Openstack云平臺(tái)的用戶接口;
平臺(tái)數(shù)據(jù)收集單元,用于收集Openstack云平臺(tái)數(shù)據(jù);
平臺(tái)數(shù)據(jù)管理單元,用于使用統(tǒng)一格式管理Openstack云平臺(tái)數(shù)據(jù)。
在上述技術(shù)方案的基礎(chǔ)上,創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元通過Ansible Playbook的role模塊實(shí)現(xiàn)。
在上述技術(shù)方案的基礎(chǔ)上,所述執(zhí)行單元包括數(shù)據(jù)庫(kù)建立單元,Keystone安裝單元和組件獨(dú)立安裝單元,其中:
數(shù)據(jù)庫(kù)建立單元用于執(zhí)行Openstack云平臺(tái)Mysql數(shù)據(jù)庫(kù)集群的建立;
Keystone安裝單元用于執(zhí)行Openstack云平臺(tái)的keystone模塊的安裝與配置;
組件獨(dú)立安裝單元用于執(zhí)行各Openstack組件的獨(dú)立安裝。
在上述技術(shù)方案的基礎(chǔ)上,所述配置模板分發(fā)模塊包括:
模板存儲(chǔ)單元,用于創(chuàng)建一個(gè)倉(cāng)庫(kù),所述倉(cāng)庫(kù)用于存儲(chǔ)各Openstack組件的配置模板;
翻譯轉(zhuǎn)發(fā)單元,用于將倉(cāng)庫(kù)中各Openstack組件的配置模板翻譯成對(duì)應(yīng)的配置信息并發(fā)送至各云平臺(tái)節(jié)點(diǎn)上。
在上述技術(shù)方案的基礎(chǔ)上,將倉(cāng)庫(kù)中各Openstack組件的配置模板翻譯成對(duì)應(yīng)的配置信息通過playbook中的template模塊實(shí)現(xiàn)。
本發(fā)明還公開了一種Openstack云平臺(tái)自定義部署系統(tǒng)的部署方法,組件安裝執(zhí)行模塊創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;然后控制模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置待安裝的Openstack云平臺(tái)的安裝模式,所述安裝模式包括Openstack云平臺(tái)的結(jié)構(gòu)和各云平臺(tái)節(jié)點(diǎn)需要安裝的組件;配置模板分發(fā)模塊根據(jù)控制模塊設(shè)置的安裝模式將各Openstack組件的配置模板發(fā)送到Openstack云平臺(tái)各云平臺(tái)節(jié)點(diǎn)上;最后控制模塊通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的協(xié)作安裝。
組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)需要安裝的Openstack組件的獨(dú)立安裝之后,用戶接口定義模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式添加和部署Openstack云平臺(tái)的用戶接口。
在上述技術(shù)方案的基礎(chǔ)上,包括以下步驟:
S1,組件安裝執(zhí)行模塊創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;
S2,控制模塊獲取用戶指定的Openstack云平臺(tái)部署模式;
S3,控制模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置Openstack云平臺(tái)的安裝模式,所述安裝模式包括待安裝的Openstack云平臺(tái)的結(jié)構(gòu)和各云平臺(tái)節(jié)點(diǎn)需要安裝的Openstack組件;
S4,配置模板分發(fā)模塊根據(jù)控制模塊設(shè)置的安裝模式將各Openstack組件的配置模板發(fā)送到各云平臺(tái)節(jié)點(diǎn)上;
S5,控制模塊通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)需要安裝的Openstack組件的協(xié)作安裝;
S6,用戶接口定義模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式添加和部署Openstack云平臺(tái)的用戶接口。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明先創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置待安裝的Openstack云平臺(tái)的安裝模式,再通過設(shè)置的安裝模式控制多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的獨(dú)立安裝,實(shí)現(xiàn)根據(jù)用戶需求設(shè)置Openstack云平臺(tái)部署結(jié)構(gòu),可以根據(jù)企業(yè)需求靈活制定方案并且可以極大利用現(xiàn)有服務(wù)器。
附圖說明
圖1為本發(fā)明實(shí)施例中Openstack云平臺(tái)自定義部署系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例中Openstack云平臺(tái)自定義部署方法的流程示意圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
參見圖1所示,本發(fā)明實(shí)施例提供一種Openstack云平臺(tái)自定義部署系統(tǒng),Openstack云平臺(tái)包括多個(gè)Openstack組件,包括:
組件安裝執(zhí)行模塊,用于創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能,多個(gè)執(zhí)行單元共同實(shí)現(xiàn)各Openstack組件的獨(dú)立安裝。創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元通過Ansible Playbook的role模塊實(shí)現(xiàn)。創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元還可通過puppet,saltstack等集群管理工具實(shí)現(xiàn)。
控制模塊,用于獲取用戶指定的Openstack云平臺(tái)部署模式;根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置安裝模式,安裝模式包括待安裝的Openstack云平臺(tái)的結(jié)構(gòu)和各云平臺(tái)節(jié)點(diǎn)需要安裝的組件;通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的協(xié)作安裝。
例如:
1)獲取用戶選擇的Openstack云平臺(tái)部署模式,配置模式文件,用戶選擇合適的配置文件:3_node.cfg;7_node.cfg。用戶選擇合適的模式安裝:#python deploy.py-m mode。
2)控制模塊將用戶的輸入信息整理待安裝的Openstack云平臺(tái)的結(jié)構(gòu):
init_3_ctl(render_only=False)
3控制節(jié)點(diǎn)模塊,采用默認(rèn)網(wǎng)絡(luò)模式,即vxlan。
init_7_ctl(render_only=False,mode=vlan)
7控制節(jié)點(diǎn)模塊,采用vlan網(wǎng)絡(luò)模式。
init_7_ctl(render_only=False,mode=vxlan)
7控制節(jié)點(diǎn)模塊,采用vxlan網(wǎng)絡(luò)模式。
init_add_ctl(render_only=False)
添加控制節(jié)點(diǎn)到運(yùn)行中的平臺(tái)中。
init_add_ceph(render_only=False)
添加存儲(chǔ)節(jié)點(diǎn)到運(yùn)行中的平臺(tái)中。
3)控制模塊將各云平臺(tái)節(jié)點(diǎn)需要安裝的組件、需要執(zhí)行的命令封裝起來并發(fā)送至各云平臺(tái)節(jié)點(diǎn)上。通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的協(xié)作安裝。
配置模板分發(fā)模塊,用于將各Openstack組件的配置模板發(fā)送到各云平臺(tái)節(jié)點(diǎn)上。配置模板為playbook中設(shè)置的Openstack組件的配置,配置模板分發(fā)模塊將各Openstack組件的配置模板發(fā)送到各云平臺(tái)節(jié)點(diǎn)后,各云平臺(tái)節(jié)點(diǎn)上Openstack組件均采用配置模板中設(shè)置的組件的配置。
Openstack云平臺(tái)自定義部署系統(tǒng)還包括用戶接口定義模塊,用于根據(jù)用戶指定的Openstack云平臺(tái)部署模式添加和部署Openstack云平臺(tái)的用戶接口。
本發(fā)明先創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置待安裝的Openstack云平臺(tái)的安裝模式,再通過設(shè)置的安裝模式控制多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的獨(dú)立安裝,實(shí)現(xiàn)根據(jù)用戶需求設(shè)置Openstack云平臺(tái)部署結(jié)構(gòu),可以根據(jù)企業(yè)需求靈活制定方案并且可以極大利用現(xiàn)有服務(wù)器。
用戶接口定義模塊包括:
用戶接口單元,用于添加和部署Openstack云平臺(tái)的用戶接口;例如,deploy_ceph.py:部署ceph用戶接口模塊。
deploy_openstack.py:部署Openstack用戶接口模塊。
new_ceph_node.py:添加ceph節(jié)點(diǎn)用戶接口模塊。
new_openstack_node.py:添加openstack組件用戶接口模塊。
平臺(tái)數(shù)據(jù)收集單元,用于收集Openstack云平臺(tái)數(shù)據(jù);例如,
utils_ceph.py:收集存儲(chǔ)資料信息。
utils_openstack.py:收集openstack組件信息。
平臺(tái)數(shù)據(jù)管理單元,用于使用統(tǒng)一格式管理Openstack云平臺(tái)數(shù)據(jù)。例如,admin_db.yml:使用Yaml格式統(tǒng)一管理數(shù)據(jù)資料。admin_yml.py:yaml文件讀寫模塊。
執(zhí)行單元包括數(shù)據(jù)庫(kù)建立單元,Keystone安裝單元和組件獨(dú)立安裝單元,其中:
數(shù)據(jù)庫(kù)建立單元用于執(zhí)行Openstack云平臺(tái)Mysql數(shù)據(jù)庫(kù)集群的建立;實(shí)現(xiàn)數(shù)據(jù)庫(kù)的集群自動(dòng)化部署,只負(fù)責(zé)建立起一個(gè)可以正常工作的Mysql數(shù)據(jù)庫(kù)集群,而不需要考慮Openstack組件如何使用。
Keystone安裝單元用于執(zhí)行Openstack云平臺(tái)的Keystone模塊的安裝與配置。保證能夠使用Openstack客戶端登錄和訪問。
組件獨(dú)立安裝單元用于執(zhí)行各Openstack組件的獨(dú)立安裝。包括Glance/Cinder/Nova/Neutron,保證服務(wù)正常啟動(dòng)。
配置模板分發(fā)模塊包括:
模板存儲(chǔ)單元,用于創(chuàng)建一個(gè)倉(cāng)庫(kù),倉(cāng)庫(kù)用于存儲(chǔ)各Openstack組件的配置模板;倉(cāng)庫(kù)為Playbook中的configuration倉(cāng)庫(kù)。
翻譯轉(zhuǎn)發(fā)單元,用于將倉(cāng)庫(kù)中各Openstack組件的配置模板翻譯成對(duì)應(yīng)的配置信息并發(fā)送至各云平臺(tái)節(jié)點(diǎn)上。
將倉(cāng)庫(kù)中各Openstack組件的配置模板翻譯成對(duì)應(yīng)的配置信息通過Playbook中的template模塊實(shí)現(xiàn)。template模塊將configuration倉(cāng)庫(kù)中的jiaja2模板翻譯成需要的配置信息,比如用戶輸入的磁盤信息,地址信息等等,可以在template拷貝模板到目標(biāo)機(jī)器的過程中自動(dòng)替換預(yù)先設(shè)計(jì)好的參數(shù)信息,達(dá)到每臺(tái)機(jī)器獨(dú)立配置信息的目的。
參見圖2所示,本發(fā)明還公開了一種Openstack云平臺(tái)自定義部署系統(tǒng)的部署方法,包括:組件安裝執(zhí)行模塊創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;然后控制模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置安裝模式,安裝模式包括Openstack云平臺(tái)的結(jié)構(gòu)和各云平臺(tái)節(jié)點(diǎn)需要安裝的組件;配置模板分發(fā)模塊根據(jù)控制模塊設(shè)置的安裝模式將各Openstack組件的配置模板發(fā)送到Openstack云平臺(tái)的各云平臺(tái)節(jié)點(diǎn)上;最后控制模塊通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)上需要安裝的Openstack組件的協(xié)作安裝。
組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)需要安裝的Openstack組件的獨(dú)立安裝之后,用戶接口定義模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式添加和部署Openstack云平臺(tái)的用戶接口。
包括以下步驟:
S1,組件安裝執(zhí)行模塊創(chuàng)建多個(gè)獨(dú)立的執(zhí)行單元,每個(gè)執(zhí)行單元用于執(zhí)行各Openstack組件獨(dú)立安裝中的一項(xiàng)獨(dú)立功能;
S2,控制模塊獲取用戶指定的Openstack云平臺(tái)部署模式;
S3,控制模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式設(shè)置Openstack云平臺(tái)的安裝模式,安裝模式包括待安裝的Openstack云平臺(tái)的結(jié)構(gòu)和各云平臺(tái)節(jié)點(diǎn)需要安裝的Openstack組件;
S4,配置模板分發(fā)模塊根據(jù)控制模塊設(shè)置的安裝模式將各Openstack組件的配置模板發(fā)送到各云平臺(tái)節(jié)點(diǎn)上;
S5,控制模塊通過設(shè)置的安裝模式控制組件安裝執(zhí)行模塊使用多個(gè)執(zhí)行單元執(zhí)行各云平臺(tái)節(jié)點(diǎn)需要安裝的Openstack組件的協(xié)作安裝;
S6,用戶接口定義模塊根據(jù)用戶指定的Openstack云平臺(tái)部署模式添加和部署Openstack云平臺(tái)的用戶接口。
本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。