本發(fā)明涉及集群技術(shù),具體涉及一種自動化部署集群的方法和裝置。
背景技術(shù):
集群環(huán)境利用多個成員所提供的資源和計算的冗余能力保證了服務(wù)的連續(xù)性和可用性。即使某個集群成員(member)之上的服務(wù)出現(xiàn)中斷,集群中的其他成員能夠自動且快速地接管這些服務(wù),從而使得用戶可見的服務(wù)中斷可以忽略。
集群中的每個成員都是一個獨立的計算節(jié)點。對應(yīng)于物理計算機所構(gòu)成的集群,則每個成員是一個獨立的物理計算機;對應(yīng)于由虛擬機所構(gòu)成的集群,則每個成員對應(yīng)于一個虛擬機。為了使得集群中各個節(jié)點能夠彼此了解對方的存在,并協(xié)同提供集群服務(wù),保證其上所運行的應(yīng)用或者服務(wù)的高可用性,需要在每個節(jié)點上進行軟件的安裝和配置工作。對應(yīng)于物理計算機,這意味著需要在每個物理計算機上安裝操作系統(tǒng)、配置操作系統(tǒng)、安裝集群軟件、配置集群軟件、安裝應(yīng)用程序、配置應(yīng)用程序。而在云計算環(huán)境中,集群系統(tǒng)的建立同樣意味著需要對集群中的每個虛擬機進行操作系統(tǒng)、集群軟件和應(yīng)用程序的安裝與配置過程。
現(xiàn)有技術(shù)中,當(dāng)一個集群成員在完成軟件(操作系統(tǒng)、集群軟件、應(yīng)用軟件)的安裝和配置之后,集群配置信息和其上所安裝的全部軟件(包括操作系統(tǒng))都被封裝在一個映像(image)文件中,其他集群成員可以直接利用這個集群成員的映像構(gòu)造映像,得到軟件環(huán)境,但是如果每個集群成員的集群配置信息是不同的,需要對每個集群成員逐個修改,這需要大量的人工操作,非常麻煩;特別在云計算環(huán)境下是不允許的。
因此,自動配置集群成員并部署集群是必要的。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種自動化部署集群的方法和裝置,方便快捷地實現(xiàn)分布式集群的安裝、部署、使用及管理。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明采取的技術(shù)方案如下:
一種自動化部署集群的方法,包括:
獲得待部署集群中每個集群成員的角色信息;
根據(jù)每個所述集群成員的角色信息,獲得與所述集群成員對應(yīng)的集群配置信息;
根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件;
執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員,完成所述集群的部署。
優(yōu)選地,集群成員的角色信息包括以下之一:
主機節(jié)點、集群管理節(jié)點、集群節(jié)點、應(yīng)用代理服務(wù)節(jié)點、服務(wù)發(fā)現(xiàn)節(jié)點、域名解析節(jié)點、鏡像倉庫節(jié)點。
優(yōu)選地,根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件包括:
根據(jù)每個所述集群成員的集群配置信息,生成所述執(zhí)行腳本所需的系統(tǒng)文件相應(yīng)的角色信息列表,并生成所述執(zhí)行腳本所需的每個所述集群成員的變量文件;
根據(jù)所述角色信息列表和所述變量文件,生成所述配置文件。
優(yōu)選地,執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員包括:
在鏡像倉庫節(jié)點上部署每個所述角色信息所需的數(shù)據(jù);
在主機節(jié)點上安裝通用軟件和環(huán)境配置,并根據(jù)主機節(jié)點的變量文件結(jié)合集群進行相應(yīng)的配置;
在服務(wù)發(fā)現(xiàn)節(jié)點上創(chuàng)建鍵值存儲的應(yīng)用引擎容器,并根據(jù)服務(wù)發(fā)現(xiàn)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群管理節(jié)點上創(chuàng)建集群管理的應(yīng)用引擎容器,并根據(jù)集群管理節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群節(jié)點上創(chuàng)建普通集群節(jié)點的應(yīng)用引擎容器,并根據(jù)集群節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在域名解析節(jié)點上創(chuàng)建域名解析的應(yīng)用引擎容器,并根據(jù)域名解析節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在應(yīng)用代理服務(wù)節(jié)點上上創(chuàng)建應(yīng)用程序代理的應(yīng)用引擎容器,并根據(jù)應(yīng)用代理服務(wù)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置。
優(yōu)選地,所述方法之前還包括:
接收或者獲取集群成員的角色信息與集群配置信息的對應(yīng)關(guān)系。
為解決上述技術(shù)問題,本發(fā)明還提供一種自動化部署集群的裝置,包括:
角色模塊,設(shè)置為獲得待部署集群中每個集群成員的角色信息;
配置模塊,設(shè)置為根據(jù)每個所述集群成員的角色信息,獲得與所述集群成員對應(yīng)的集群配置信息;
生成模塊,設(shè)置為根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件;
執(zhí)行模塊,設(shè)置為執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員,完成所述集群的部署。
優(yōu)選地,所述角色模塊的集群成員的角色信息包括以下之一:
主機節(jié)點、集群管理節(jié)點、集群節(jié)點、應(yīng)用代理服務(wù)節(jié)點、服務(wù)發(fā)現(xiàn)節(jié)點、域名解析節(jié)點、鏡像倉庫節(jié)點。
優(yōu)選地,所述生成模塊根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件包括:
根據(jù)每個所述集群成員的集群配置信息,生成所述執(zhí)行腳本所需的系統(tǒng)文件相應(yīng)的角色信息列表,并生成所述執(zhí)行腳本所需的每個所述集群成員的變量文件;
根據(jù)所述角色信息列表和所述變量文件,生成所述配置文件。
優(yōu)選地,所述執(zhí)行模塊執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員包括:
在鏡像倉庫節(jié)點上部署每個所述角色信息所需的數(shù)據(jù);
在主機節(jié)點上安裝通用軟件和環(huán)境配置,并根據(jù)主機節(jié)點的變量文件結(jié)合集群進行相應(yīng)的配置;
在服務(wù)發(fā)現(xiàn)節(jié)點上創(chuàng)建鍵值存儲的應(yīng)用引擎容器,并根據(jù)服務(wù)發(fā)現(xiàn)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群管理節(jié)點上創(chuàng)建集群管理的應(yīng)用引擎容器,并根據(jù)集群管理節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群節(jié)點上創(chuàng)建普通集群節(jié)點的應(yīng)用引擎容器,并根據(jù)集群節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在域名解析節(jié)點上創(chuàng)建域名解析的應(yīng)用引擎容器,并根據(jù)域名解析節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在應(yīng)用代理服務(wù)節(jié)點上上創(chuàng)建應(yīng)用程序代理的應(yīng)用引擎容器,并根據(jù)應(yīng)用代理服務(wù)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置。
優(yōu)選地,所述的裝置還包括:
接收模塊,設(shè)置為接收或者獲取集群成員的角色信息與集群配置信息的對應(yīng)關(guān)系。
本發(fā)明和現(xiàn)有技術(shù)相比,具有如下有益效果:
本發(fā)明的技術(shù)方案,便于部署集群,通過執(zhí)行腳本和本地鏡像倉庫及本地源的安裝方式,實現(xiàn)分布式快速部署。根據(jù)角色的不同,劃分為swarmmanager、swarmnode、haproxy、discovery、skydns、registry,在不同的機器節(jié)點上安裝所需角色的服務(wù),方便快捷的實現(xiàn)集群的安裝、部署、使用以及管理,性能及穩(wěn)定性好。
附圖說明
圖1為本發(fā)明實施例的一種自動化部署集群的方法的流程圖;
圖2為本發(fā)明實施例的一種自動化部署集群的裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例1的部署集群的配置界面示意圖。
具體實施方式
為使本發(fā)明的發(fā)明目的、技術(shù)方案和有益效果更加清楚明了,下面結(jié)合附圖對本發(fā)明的實施例進行說明,需要說明的是,在不沖突的情況下,本申請中的實施例和實施例中的特征可以相互任意組合。
如圖1所示,本發(fā)明實施例提供一種自動化部署集群的方法,所述方法包括:
s101、獲得待部署集群中每個集群成員的角色信息;
s102、根據(jù)每個所述集群成員的角色信息,獲得與所述集群成員對應(yīng)的集群配置信息;
s103、根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件;
s104、執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員,完成所述集群的部署。
集群中每一個集群成員配置成功,完成所述集群的部署。
其中,集群成員的角色信息包括以下之一:
主機節(jié)點、集群管理節(jié)點、集群節(jié)點、應(yīng)用代理服務(wù)節(jié)點、服務(wù)發(fā)現(xiàn)節(jié)點、域名解析節(jié)點、鏡像倉庫節(jié)點。
步驟s103根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件包括:
根據(jù)每個所述集群成員的集群配置信息,生成所述執(zhí)行腳本所需的系統(tǒng)文件相應(yīng)的角色信息列表,并生成所述執(zhí)行腳本所需的每個所述集群成員的變量文件;
根據(jù)所述角色信息列表和所述變量文件,生成所述配置文件。
步驟s104執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員包括:
在鏡像倉庫節(jié)點上部署每個所述角色信息所需的數(shù)據(jù);
在主機節(jié)點上安裝通用軟件和環(huán)境配置,并根據(jù)主機節(jié)點的變量文件結(jié)合集群進行相應(yīng)的配置;
在服務(wù)發(fā)現(xiàn)節(jié)點上創(chuàng)建鍵值存儲的應(yīng)用引擎容器,并根據(jù)服務(wù)發(fā)現(xiàn)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群管理節(jié)點上創(chuàng)建集群管理的應(yīng)用引擎容器,并根據(jù)集群管理節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群節(jié)點上創(chuàng)建普通集群節(jié)點的應(yīng)用引擎容器,并根據(jù)集群節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在域名解析節(jié)點上創(chuàng)建域名解析的應(yīng)用引擎容器,并根據(jù)域名解析節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在應(yīng)用代理服務(wù)節(jié)點上上創(chuàng)建應(yīng)用程序代理的應(yīng)用引擎容器,并根據(jù)應(yīng)用代理服務(wù)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置。
所述方法之前還包括:
接收或者獲取集群成員的角色信息與集群配置信息的對應(yīng)關(guān)系。
如圖2所示,本發(fā)明實施例還提供一種自動化部署集群的裝置,包括:
角色模塊,設(shè)置為獲得待部署集群中每個集群成員的角色信息;
配置模塊,設(shè)置為根據(jù)每個所述集群成員的角色信息,獲得與所述集群成員對應(yīng)的集群配置信息;
生成模塊,設(shè)置為根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件;
執(zhí)行模塊,設(shè)置為執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員,完成所述集群的部署。
所述角色模塊的集群成員的角色信息包括以下之一:
主機節(jié)點、集群管理節(jié)點、集群節(jié)點、應(yīng)用代理服務(wù)節(jié)點、服務(wù)發(fā)現(xiàn)節(jié)點、域名解析節(jié)點、鏡像倉庫節(jié)點。
所述生成模塊根據(jù)每個所述集群成員的集群配置信息生成執(zhí)行腳本所需的配置文件包括:
根據(jù)每個所述集群成員的集群配置信息,生成所述執(zhí)行腳本所需的系統(tǒng)文件相應(yīng)的角色信息列表,并生成所述執(zhí)行腳本所需的每個所述集群成員的變量文件;
根據(jù)所述角色信息列表和所述變量文件,生成所述配置文件。
所述執(zhí)行模塊執(zhí)行所述配置文件,利用每個所述集群成員的集群配置信息配置所述集群成員包括:
在鏡像倉庫節(jié)點上部署每個所述角色信息所需的數(shù)據(jù);
在主機節(jié)點上安裝通用軟件和環(huán)境配置,并根據(jù)主機節(jié)點的變量文件結(jié)合集群進行相應(yīng)的配置;
在服務(wù)發(fā)現(xiàn)節(jié)點上創(chuàng)建鍵值存儲的應(yīng)用引擎容器,并根據(jù)服務(wù)發(fā)現(xiàn)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群管理節(jié)點上創(chuàng)建集群管理的應(yīng)用引擎容器,并根據(jù)集群管理節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在集群節(jié)點上創(chuàng)建普通集群節(jié)點的應(yīng)用引擎容器,并根據(jù)集群節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在域名解析節(jié)點上創(chuàng)建域名解析的應(yīng)用引擎容器,并根據(jù)域名解析節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置;
在應(yīng)用代理服務(wù)節(jié)點上上創(chuàng)建應(yīng)用程序代理的應(yīng)用引擎容器,并根據(jù)應(yīng)用代理服務(wù)節(jié)點的變量文件結(jié)合鏡像倉庫節(jié)點對應(yīng)的數(shù)據(jù),進行相應(yīng)的配置。
所述的裝置還包括:
接收模塊,設(shè)置為接收或者獲取集群成員的角色信息與集群配置信息的對應(yīng)關(guān)系。
實施例1
本實施例結(jié)合ansible腳本,通過如圖3所示的管理界面配置所需參數(shù),使用本地鏡像倉庫及本地源,實現(xiàn)自動化部署集群,具體包括:
預(yù)先通過圖3所示的界面配置所需參數(shù),包括集群成員的角色信息與集群配置信息的對應(yīng)關(guān)系;
通過所述集群成員的角色信息,獲得所述集群成員的集群配置信息;
利用beego的框架,根據(jù)所述集群成員的集群配置信息生成相應(yīng)的ansible腳本所需的配置文件;
執(zhí)行ansible腳本,利用所述集群成員的集群配置信息配置所述集群成員。
集群中每一個集群成員配置成功,完成所述集群的部署。
本實施例能夠根據(jù)角色的不同,劃分為swarmmanager、swarmnode、haproxy、discovery、skydns、registry,在不同的機器節(jié)點上安裝所需角色的服務(wù)。
雖然本發(fā)明所揭示的實施方式如上,但其內(nèi)容只是為了便于理解本發(fā)明的技術(shù)方案而采用的實施方式,并非用于限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭示的核心技術(shù)方案的前提下,可以在實施的形式和細節(jié)上做任何修改與變化,但本發(fā)明所限定的保護范圍,仍須以所附的權(quán)利要求書限定的范圍為準。