本發(fā)明涉及計算機技術領域,特別涉及一種產品部署的方法、裝置及系統(tǒng)。
背景技術:
一個成熟的產品通常由多個不同的功能模塊構成。隨著用戶需求的日益增多,功能實現中也引入更多的組件。
現有的產品部署方案往往偏重手動部署,以完成各組件獨立拷貝安裝,參數配置的修改等。
可以看出,現有的實現方式不能進行產品的自動化部署。
技術實現要素:
本發(fā)明提供了一種產品部署的方法、裝置及系統(tǒng),能夠進行產品的自動化部署。
為了達到上述目的,本發(fā)明是通過如下技術方案實現的:
第一方面,本發(fā)明提供了一種產品部署的方法,應用于Proxy(代理)節(jié)點,所述Proxy節(jié)點分別與監(jiān)控節(jié)點和至少一個worker節(jié)點相連,包括:
S1:確定系統(tǒng)鏡像,且所述系統(tǒng)鏡像中內置有產品部署所需的服務包、腳本和至少一個組件;
S2:利用所述系統(tǒng)鏡像中的服務包和至少一個組件,安裝操作系統(tǒng);
S3:基于所述操作系統(tǒng),通過運行所述腳本,安裝所述Proxy節(jié)點對應的組件,以及控制所述監(jiān)控節(jié)點安裝所述監(jiān)控節(jié)點對應的組件,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
進一步地,所述至少一個組件包括:所述Proxy節(jié)點對應的Yum源組件,且所述Yum源組件中配置有所述服務包;
在S2中,安裝的所述操作系統(tǒng)包括:所述至少一個組件中的每一個組件對應的安裝包;
在S2之后,進一步包括:確定配置文件,且所述配置文件中包括所述Proxy節(jié)點的配置信息、所述監(jiān)控節(jié)點的配置信息和每一個所述worker節(jié)點的配置信息;
所述S3包括:基于所述操作系統(tǒng),通過運行所述腳本,配置所述Yum源組件的包括所述Proxy節(jié)點的IP地址的URL(Uniform Resoure Locator,統(tǒng)一資源定位器)地址,在所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點上分別配置統(tǒng)一的hosts文件,配置所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點之間互信,以初始化程序;基于所述初始化的程序和根據所述操作系統(tǒng)中的安裝包,分別根據所述Proxy節(jié)點的配置信息,安裝所述Proxy節(jié)點對應的組件,根據所述監(jiān)控節(jié)點的配置信息,控制所述監(jiān)控節(jié)點安裝所述監(jiān)控對應的組件,根據每一個所述worker節(jié)點的配置信息,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
進一步地,所述配置信息,包括:IP地址,或,IP地址和域名。
進一步地,所述至少一個組件包括:所述Proxy節(jié)點對應的HaProxy組件、NFS(Network File System,網絡文件系統(tǒng))組件、Mycat組件和Yum源組件;所述監(jiān)控節(jié)點對應的Ceilometer組件、KeyStone組件和MongoDB組件;所述worker節(jié)點對應的IOP(I/O Processor,輸入輸出處理器)-Web組件、RabbitMQ組件、MariaDB組件和Swift組件。
進一步地,所述S3中,所述通過運行所述腳本,安裝所述Proxy節(jié)點對應的組件包括:通過運行所述腳本中的與所述Proxy節(jié)點對應的子腳本,依次安裝所述NFS組件、所述HaProxy組件、所述Mycat組件和所述Yum源組件;針對在所述Proxy節(jié)點上安裝的每一個組件,重置其對應的配置文件;
所述通過運行所述腳本,控制所述監(jiān)控節(jié)點安裝所述監(jiān)控對應的組件包括:通過運行所述腳本中的與所述監(jiān)控節(jié)點對應的子腳本,依次安裝所述KeyStone組件、所述MongoDB組件和所述Ceilometer組件;針對在所述監(jiān)控節(jié)點上安裝的每一個組件,重置其對應的配置文件;
所述通過運行所述腳本,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件包括:通過運行所述腳本中的與所述worker節(jié)點對應的子腳本,依次安裝所述MariaDB組件、所述RabbitMQ組件、所述IOP-Web組件和所述Swift組件;針對在所述worker節(jié)點上安裝的每一個組件,重置其對應的配置文件。
另一方面,本發(fā)明提供了一種Proxy節(jié)點,所述Proxy節(jié)點分別與監(jiān)控節(jié)點和至少一個worker節(jié)點相連,包括:
第一確定單元,用于確定系統(tǒng)鏡像,且所述系統(tǒng)鏡像中內置有產品部署所需的服務包、腳本和至少一個組件;
系統(tǒng)安裝單元,用于利用所述系統(tǒng)鏡像中的服務包和至少一個組件,安裝操作系統(tǒng);
處理單元,用于基于所述操作系統(tǒng),通過運行所述腳本,安裝所述Proxy節(jié)點對應的組件,以及控制所述監(jiān)控節(jié)點安裝所述監(jiān)控節(jié)點對應的組件,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
進一步地,該Proxy節(jié)點還包括:第二確定單元;
所述第一確定單元中確定的所述至少一個組件包括:所述Proxy節(jié)點對應的Yum源組件,且所述Yum源組件中配置有所述服務包;
所述系統(tǒng)安裝單元中安裝的所述操作系統(tǒng)包括:所述至少一個組件中的每一個組件對應的安裝包;
所述系統(tǒng)安裝單元,進一步用于完成安裝操作系統(tǒng)時,觸發(fā)所述第二確定單元;
所述第二確定單元,用于在接收到所述系統(tǒng)安裝單元發(fā)來的觸發(fā)信號時,確定配置文件,且所述配置文件中包括所述Proxy節(jié)點的配置信息、所述監(jiān)控節(jié)點的配置信息和每一個所述worker節(jié)點的配置信息;
所述處理單元,具體用于基于所述操作系統(tǒng),通過運行所述腳本,配置所述Yum源組件的包括所述Proxy節(jié)點的IP地址的URL地址,在所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點上分別配置統(tǒng)一的hosts文件,配置所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點之間互信,以初始化程序;基于所述初始化的程序和根據所述操作系統(tǒng)中的安裝包,分別根據所述Proxy節(jié)點的配置信息,安裝所述Proxy節(jié)點對應的組件,根據所述監(jiān)控節(jié)點的配置信息,控制所述監(jiān)控節(jié)點安裝所述監(jiān)控對應的組件,根據每一個所述worker節(jié)點的配置信息,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
進一步地,所述第一確定單元,具體用于確定內置有至少一個組件的系統(tǒng)鏡像,且所述至少一個組件包括:所述Proxy節(jié)點對應的HaProxy組件、NFS組件、Mycat組件和Yum源組件;所述監(jiān)控節(jié)點對應的Ceilometer組件、KeyStone組件和MongoDB組件;所述worker節(jié)點對應的IOP-Web組件、RabbitMQ組件、MariaDB組件和Swift組件。
進一步地,所述處理單元,具體用于通過運行所述腳本中的與所述Proxy節(jié)點對應的子腳本,依次安裝所述NFS組件、所述HaProxy組件、所述Mycat組件和所述Yum源組件;針對在所述Proxy節(jié)點上安裝的每一個組件,重置其對應的配置文件;通過運行所述腳本中的與所述監(jiān)控節(jié)點對應的子腳本,依次安裝所述KeyStone組件、所述MongoDB組件和所述Ceilometer組件;針對在所述監(jiān)控節(jié)點上安裝的每一個組件,重置其對應的配置文件;通過運行所述腳本中的與所述worker節(jié)點對應的子腳本,依次安裝所述MariaDB組件、所述RabbitMQ組件、所述IOP-Web組件和所述Swift組件;針對在所述worker節(jié)點上安裝的每一個組件,重置其對應的配置文件。
第三方面,本發(fā)明提供了一種產品部署的系統(tǒng),包括:
監(jiān)控節(jié)點、至少一個worker節(jié)點,以及如權利要求6至9中任一所述的Proxy節(jié)點,其中,
所述Proxy節(jié)點分別與所述監(jiān)控節(jié)點和每一個所述worker節(jié)點相連。
本發(fā)明提供了一種產品部署的方法、裝置及系統(tǒng),Proxy節(jié)點確定內置有產品部署所需的服務包、腳本和至少一個組件的鏡像;利用鏡像中的服務包和至少一個組件以安裝操作系統(tǒng);基于安裝的操作系統(tǒng),通過運行腳本,安裝Proxy節(jié)點對應的組件,以及控制連接的監(jiān)控節(jié)點安裝該監(jiān)控節(jié)點對應的組件,控制每一個連接的worker節(jié)點安裝該worker節(jié)點對應的組件。Proxy節(jié)點利用定制化鏡像以安裝操作系統(tǒng),并通過運行腳本以分別在Proxy節(jié)點、監(jiān)控節(jié)點、worker節(jié)點安裝各節(jié)點對應的組件,從而自動化部署產品。因此,本發(fā)明能夠進行產品的自動化部署。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發(fā)明一實施例提供的一種產品部署的方法的流程圖;
圖2是本發(fā)明一實施例提供的另一種產品部署的方法的流程圖;
圖3是本發(fā)明一實施例提供的一種Proxy節(jié)點的示意圖;
圖4是本發(fā)明一實施例提供的另一種Proxy節(jié)點的示意圖;
圖5是本發(fā)明一實施例提供的一種產品部署的系統(tǒng)的示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明實施例提供了一種產品部署的方法,應用于Proxy節(jié)點,所述Proxy節(jié)點分別與監(jiān)控節(jié)點和至少一個worker節(jié)點相連,可以包括以下步驟:
步驟101:確定系統(tǒng)鏡像,且所述系統(tǒng)鏡像中內置有產品部署所需的服務包、腳本和至少一個組件。
步驟102:利用所述系統(tǒng)鏡像中的服務包和至少一個組件,安裝操作系統(tǒng)。
步驟103:基于所述操作系統(tǒng),通過運行所述腳本,安裝所述Proxy節(jié)點對應的組件,以及控制所述監(jiān)控節(jié)點安裝所述監(jiān)控節(jié)點對應的組件,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
本發(fā)明實施例提供了一種產品部署的方法,Proxy節(jié)點確定內置有產品部署所需的服務包、腳本和至少一個組件的鏡像;利用鏡像中的服務包和至少一個組件以安裝操作系統(tǒng);基于安裝的操作系統(tǒng),通過運行腳本,安裝Proxy節(jié)點對應的組件,以及控制連接的監(jiān)控節(jié)點安裝該監(jiān)控節(jié)點對應的組件,控制每一個連接的worker節(jié)點安裝該worker節(jié)點對應的組件。Proxy節(jié)點利用定制化鏡像以安裝操作系統(tǒng),并通過運行腳本以分別在Proxy節(jié)點、監(jiān)控節(jié)點、worker節(jié)點安裝各節(jié)點對應的組件,從而自動化部署產品。因此,本發(fā)明實施例能夠進行產品的自動化部署。
在本發(fā)明的一個實施例中,為了說明一種在Proxy節(jié)點、監(jiān)控節(jié)點和worker節(jié)點上統(tǒng)一部署組件的實現方式,所以,
所述至少一個組件包括:所述Proxy節(jié)點對應的Yum源組件,且所述Yum源組件中配置有所述服務包;
在步驟102中,安裝的所述操作系統(tǒng)包括:所述至少一個組件中的每一個組件對應的安裝包;
在步驟102之后,進一步包括:確定配置文件,且所述配置文件中包括所述Proxy節(jié)點的配置信息、所述監(jiān)控節(jié)點的配置信息和每一個所述worker節(jié)點的配置信息;
所述步驟103包括:基于所述操作系統(tǒng),通過運行所述腳本,配置所述Yum源組件的包括所述Proxy節(jié)點的IP地址的URL地址,在所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點上分別配置統(tǒng)一的hosts文件,配置所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點之間互信,以初始化程序;基于所述初始化的程序和根據所述操作系統(tǒng)中的安裝包,分別根據所述Proxy節(jié)點的配置信息,安裝所述Proxy節(jié)點對應的組件,根據所述監(jiān)控節(jié)點的配置信息,控制所述監(jiān)控節(jié)點安裝所述監(jiān)控對應的組件,根據每一個所述worker節(jié)點的配置信息,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
通過配置yum源地址、配置各節(jié)點上統(tǒng)一的hosts文件和配置節(jié)點互信,便于執(zhí)行腳本時各節(jié)點間的文件傳輸,便于在Proxy節(jié)點這一單節(jié)點上統(tǒng)一處理,從而實現整個集群的初始化安裝工作。
在本發(fā)明的一個實施例中,所述配置信息包括:IP地址,或,IP地址和域名。
詳細地,通過在配置文件中設置每一個節(jié)點的IP地址,能夠便于Proxy節(jié)點根據配置文件中的各節(jié)點的IP地址,在各節(jié)點安裝部署該節(jié)點對應的組件。當然,域名可以與IP地址結合使用。
在本發(fā)明的一個實施例中,所述至少一個組件包括:所述Proxy節(jié)點對應的HaProxy組件、NFS組件、Mycat組件和Yum源組件;所述監(jiān)控節(jié)點對應的Ceilometer組件、KeyStone組件和MongoDB組件;所述worker節(jié)點對應的IOP-Web組件、RabbitMQ組件、MariaDB組件和Swift組件。
在本發(fā)明的一個實施例中,為了說明一種各節(jié)點中的組件安裝順序,所以所述步驟103中,
所述通過運行所述腳本,安裝所述Proxy節(jié)點對應的組件包括:通過運行所述腳本中的與所述Proxy節(jié)點對應的子腳本,依次安裝所述NFS組件、所述HaProxy組件、所述Mycat組件和所述Yum源組件;針對在所述Proxy節(jié)點上安裝的每一個組件,重置其對應的配置文件;
所述通過運行所述腳本,控制所述監(jiān)控節(jié)點安裝所述監(jiān)控對應的組件包括:通過運行所述腳本中的與所述監(jiān)控節(jié)點對應的子腳本,依次安裝所述KeyStone組件、所述MongoDB組件和所述Ceilometer組件;針對在所述監(jiān)控節(jié)點上安裝的每一個組件,重置其對應的配置文件;
所述通過運行所述腳本,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件包括:通過運行所述腳本中的與所述worker節(jié)點對應的子腳本,依次安裝所述MariaDB組件、所述RabbitMQ組件、所述IOP-Web組件和所述Swift組件;針對在所述worker節(jié)點上安裝的每一個組件,重置其對應的配置文件。
在本實施例中,可以在腳本中預先確定的各節(jié)點所需組件的安裝順序,通過運行腳本,在各節(jié)點上依次安裝其所需組件。
如圖2所示,本發(fā)明一個實施例提供了另一種產品部署的方法,以IOP Manager自動化部署解決方案為例,具體包括以下步驟:
步驟201:將Proxy節(jié)點分別與監(jiān)控節(jié)點和兩個worker節(jié)點相連。
詳細地,產品的正常使用可以基于Proxy節(jié)點、監(jiān)控節(jié)點和至少一個worker節(jié)點得以實現。其中,各worker節(jié)點之間負載均衡,且worker節(jié)點數量的增加有益于提升產品的運行效率。例如,當產品為一個web訪問瀏覽頁面時,worker節(jié)點數量的增加有益于提高訪問速度。
本實施例中,節(jié)點集群中可以有一個Proxy節(jié)點、一個監(jiān)控節(jié)點和兩個worker節(jié)點,Proxy節(jié)點分別與監(jiān)控節(jié)點和各worker節(jié)點相連,故可以在Proxy節(jié)點上進行各節(jié)點的統(tǒng)一處理,實現整個集群的初始化安裝工作。
步驟202:確定產品部署所需的服務包、python腳本和11個組件,并將其內置到定制化系統(tǒng)鏡像中。
詳細地,產品部署所需的服務包可以包括組件安裝所需的package包和服務安裝所需的package包。其中,組件安裝所需的package包可以用于在各節(jié)點中安裝組件,服務安裝所需的package包可以用于組件安裝完成后實現組件功能。本發(fā)明實施例中,可以將確定的服務包配置于Yum源組件中。
詳細地,python腳本可以為一個總腳本,從而確定一個統(tǒng)一的腳本接口,且該python腳本中還可以包括對應于各類節(jié)點的子腳本信息,通過運行每一個子腳本,可以使對應的節(jié)點安裝該節(jié)點所需組件。
詳細地,本實施例中,針對于IOP Manager,產品部署所需組件可以為下述11個組件:Proxy節(jié)點對應的HaProxy組件、NFS組件、Mycat組件和Yum源組件;監(jiān)控節(jié)點對應的Ceilometer組件、KeyStone組件和MongoDB組件;worker節(jié)點對應的IOP-Web組件、RabbitMQ組件、MariaDB組件和Swift組件。
其中,本發(fā)明一個實施例中,HaProxy組件可以提供高可用和負載均衡;NFS組件可以允許網絡中的計算機之間通過TCP/IP網絡共享資源;Mycat組件可以為分布式數據庫系統(tǒng);Yum源組件可以為軟件的倉庫;Ceilometer組件可以提供虛擬機、服務、事件監(jiān)控;KeyStone組件可以提供管理產品身份驗證、服務規(guī)則和服務令牌等;MongoDB組件可以為分布式文件存儲數據庫;IOP-Web組件可以為IOP Manager管理控制代碼;RabbitMQ組件可以為消息模塊,用于各模塊之間通信;MariaDB組件可以為關系型數據庫,用于系統(tǒng)元數據存儲;Swift組件可以為對象存儲模塊,用于IOP Manager系統(tǒng)服務包、鏡像、租戶文件的存儲。
步驟203:Proxy節(jié)點從定制化系統(tǒng)鏡像中解析出服務包、python腳本和11個組件,并根據服務包和11個組件,安裝操作系統(tǒng),且安裝的操作系統(tǒng)中包括每一個組件對應的安裝包。
Proxy節(jié)點根據鏡像中的服務包和組件,安裝自身操作系統(tǒng),且安裝好的操作系統(tǒng)中包含有用于安裝每一個組件所需的安裝包。Proxy節(jié)點可以基于安裝好的操作系統(tǒng),以在各節(jié)點上部署和安裝產品。
在本發(fā)明一個實施例中,由于Proxy節(jié)點分別與監(jiān)控節(jié)點和worker節(jié)點相連,故也可以由Proxy節(jié)點,同時在每一個節(jié)點上安裝統(tǒng)一的操作系統(tǒng),而無需一直依賴于Proxy節(jié)點上安裝的操作系統(tǒng)。
步驟204:設置包括每一個節(jié)點的配置信息的配置文件。
在完成安裝操作系統(tǒng)之后,需要確定一個配置文件,該配置文件中可以包括每一個節(jié)點的配置信息,以便于Proxy節(jié)點根據各節(jié)點的配置信息,在各節(jié)點上安裝組件。
詳細地,節(jié)點的配置信息可以為該節(jié)點的IP地址,或者可以為該節(jié)點的IP地址和域名。
步驟205:Proxy節(jié)點基于安裝的操作系統(tǒng),通過運行python腳本,配置Yum源組件的包括Proxy節(jié)點的IP地址的URL地址,在Proxy節(jié)點、監(jiān)控節(jié)點和每一個worker節(jié)點上分別配置統(tǒng)一的hosts文件,配置Proxy節(jié)點、監(jiān)控節(jié)點和每一個worker節(jié)點之間互信,以初始化程序。
Proxy節(jié)點在對每一個節(jié)點安裝對應組件之前,可以通過運行python腳本以首先初始化程序。詳細地,程序的初始化可以包括:yum repos,即配置Yum源地址;config hosts,即在各節(jié)點配置統(tǒng)一的hosts文件;ssh authorized,即配置各節(jié)點互信。
通過配置Yum源地址,如本實施例中,由于Yum源組件可以安裝于Proxy節(jié)點中,故可以將包括Proxy節(jié)點的IP地址的URL地址配置為Yum源地址,以便于通過該URL地址能夠準確調用Yum源中的內容。
通過初始化程序,可以便于初始化腳本執(zhí)行時各節(jié)點間文件傳輸,從而可以在Proxy節(jié)點這一單節(jié)點上統(tǒng)一處理,實現整個集群的初始化安裝工作。
基于初始化的程序,Proxy節(jié)點可以根據安裝的操作系統(tǒng)中的安裝包,以及根據確定的配置文件中各節(jié)點的配置信息,通過運行各節(jié)點對應的腳本內容,以安裝各節(jié)點所需的組件。其中,通過運行python腳本,可以根據一定的安裝順序以安裝各節(jié)點所需的組件。
詳細地,下述步驟206說明了Proxy節(jié)點安裝自身組件的實現過程;下述步驟207說明了Proxy節(jié)點控制監(jiān)控節(jié)點以安裝其所需組件的實現過程;下述步驟208說明了Proxy節(jié)點控制worker節(jié)點以安裝其所需組件的實現過程。
步驟206:Proxy節(jié)點基于初始化的程序,根據操作系統(tǒng)中的安裝包和配置文件中的Proxy節(jié)點的配置信息,通過運行python腳本中的與Proxy節(jié)點對應的子腳本,依次安裝NFS組件、HaProxy組件、Mycat組件和Yum源組件,并針對在Proxy節(jié)點上安裝的每一個組件,重置其對應的配置文件。
詳細地,利用python腳本,在完成節(jié)點對應組件的安裝時,同樣可以對每一個組件對應的配置文件進行重置。例如,Proxy節(jié)點上的某一組件需要使用監(jiān)控節(jié)點中存儲的特定信息,故該組件的配置文件中可以記錄有監(jiān)控節(jié)點的IP地址。通過運行python腳本,可以在完成安裝每一個組件時,對每一個組件對應的配置文件進行重置。
步驟207:Proxy節(jié)點基于初始化的程序,根據操作系統(tǒng)中的安裝包和配置文件中的監(jiān)控節(jié)點的配置信息,通過運行python腳本中的與監(jiān)控節(jié)點對應的子腳本,依次安裝KeyStone組件、MongoDB組件和Ceilometer組件,并針對在監(jiān)控節(jié)點上安裝的每一個組件,重置其對應的配置文件。
步驟208:Proxy節(jié)點基于初始化的程序,根據操作系統(tǒng)中的安裝包和配置文件中的worker節(jié)點的配置信息,通過運行python腳本中的與worker節(jié)點對應的子腳本,依次安裝MariaDB組件、RabbitMQ組件、IOP-Web組件和Swift組件,并針對在worker節(jié)點上安裝的每一個組件,重置其對應的配置文件。
組件安裝操作全部執(zhí)行完成時,可以完成數據庫的初始化工作,并根據預先確定的服務安裝所需的package包,以實現組件功能并啟動服務,從而完成產品的自動化部署。
在本發(fā)明一個實施例中,IOP Manager快速部署方案可以基于CentOS7系統(tǒng)。
本發(fā)明實施例中,通過將產品部署中所需的組件、服務包等內置到定制化系統(tǒng)鏡像中,根據該鏡像和具有安裝流程的腳本,可以實現產品的自動化部署。這一實現方式避免了手動部署繁雜的工作量,有效解決了IOP Manager產品手動部署過程中組件配置繁雜、部署周期冗長等問題,大大提升了部署運維效率。
本發(fā)明實施例中,產品自動化部署的實現,不僅為部署人員避免或減少了一定的繁雜工作量,同時降低了因人為操作所帶來的出錯幾率,故提高了產品部署的準確率。
如圖3所示,本發(fā)明一個實施例提供了一種Proxy節(jié)點30,所述Proxy節(jié)點分別與監(jiān)控節(jié)點和至少一個worker節(jié)點相連,包括:
第一確定單元301,用于確定系統(tǒng)鏡像,且所述系統(tǒng)鏡像中內置有產品部署所需的服務包、腳本和至少一個組件;
系統(tǒng)安裝單元302,用于利用所述系統(tǒng)鏡像中的服務包和至少一個組件,安裝操作系統(tǒng);
處理單元303,用于基于所述操作系統(tǒng),通過運行所述腳本,安裝所述Proxy節(jié)點對應的組件,以及控制所述監(jiān)控節(jié)點安裝所述監(jiān)控節(jié)點對應的組件,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
在本發(fā)明一個實施例中,請參考圖4,該Proxy節(jié)點30還可以包括:第二確定單元401;
所述第一確定單元301中確定的所述至少一個組件包括:所述Proxy節(jié)點對應的Yum源組件,且所述Yum源組件中配置有所述服務包;
所述系統(tǒng)安裝單元302中安裝的所述操作系統(tǒng)包括:所述至少一個組件中的每一個組件對應的安裝包;
所述系統(tǒng)安裝單元302,進一步用于完成安裝操作系統(tǒng)時,觸發(fā)所述第二確定單元401;
所述第二確定單元401,用于在接收到所述系統(tǒng)安裝單元302發(fā)來的觸發(fā)信號時,確定配置文件,且所述配置文件中包括所述Proxy節(jié)點的配置信息、所述監(jiān)控節(jié)點的配置信息和每一個所述worker節(jié)點的配置信息;
所述處理單元303,具體用于基于所述操作系統(tǒng),通過運行所述腳本,配置所述Yum源組件的包括所述Proxy節(jié)點的IP地址的URL地址,在所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點上分別配置統(tǒng)一的hosts文件,配置所述Proxy節(jié)點、所述監(jiān)控節(jié)點和每一個所述worker節(jié)點之間互信,以初始化程序;基于所述初始化的程序和根據所述操作系統(tǒng)中的安裝包,分別根據所述Proxy節(jié)點的配置信息,安裝所述Proxy節(jié)點對應的組件,根據所述監(jiān)控節(jié)點的配置信息,控制所述監(jiān)控節(jié)點安裝所述監(jiān)控對應的組件,根據每一個所述worker節(jié)點的配置信息,控制每一個所述worker節(jié)點安裝所述worker節(jié)點對應的組件。
在本發(fā)明一個實施例中,所述第一確定單元301,具體用于確定內置有至少一個組件的系統(tǒng)鏡像,且所述至少一個組件包括:所述Proxy節(jié)點對應的HaProxy組件、NFS組件、Mycat組件和Yum源組件;所述監(jiān)控節(jié)點對應的Ceilometer組件、KeyStone組件和MongoDB組件;所述worker節(jié)點對應的IOP-Web組件、RabbitMQ組件、MariaDB組件和Swift組件。
在本發(fā)明一個實施例中,所述處理單元303,具體用于通過運行所述腳本中的與所述Proxy節(jié)點對應的子腳本,依次安裝所述NFS組件、所述HaProxy組件、所述Mycat組件和所述Yum源組件;針對在所述Proxy節(jié)點上安裝的每一個組件,重置其對應的配置文件;通過運行所述腳本中的與所述監(jiān)控節(jié)點對應的子腳本,依次安裝所述KeyStone組件、所述MongoDB組件和所述Ceilometer組件;針對在所述監(jiān)控節(jié)點上安裝的每一個組件,重置其對應的配置文件;通過運行所述腳本中的與所述worker節(jié)點對應的子腳本,依次安裝所述MariaDB組件、所述RabbitMQ組件、所述IOP-Web組件和所述Swift組件;針對在所述worker節(jié)點上安裝的每一個組件,重置其對應的配置文件。
如圖5所示,本發(fā)明實施例提供了一種產品部署的系統(tǒng),包括:
監(jiān)控節(jié)點50、至少一個worker節(jié)點60,以及上述任一所述的Proxy節(jié)點30,其中,
所述Proxy節(jié)點30分別與所述監(jiān)控節(jié)點50和每一個所述worker節(jié)點60相連。
通過將產品部署中所需的組件、服務包等內置到定制化系統(tǒng)鏡像中,所述Proxy節(jié)點30根據該鏡像以安裝操作系統(tǒng);基于安裝的操作系統(tǒng),根據確定的包括各節(jié)點配置信息的配置文件,所述Proxy節(jié)點30通過運行具有安裝流程的腳本,可以在各節(jié)點上安裝各節(jié)點所需組件,從而實現產品的自動化部署?;诎ǜ鞴?jié)點的節(jié)點集群,通過各節(jié)點間的共同作用,可以實現所部署產品對應的功能效果。
上述裝置內的各單元之間的信息交互、執(zhí)行過程等內容,由于與本發(fā)明方法實施例基于同一構思,具體內容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
綜上所述,本發(fā)明的各個實施例至少具有如下有益效果:
1、本發(fā)明實施例中,Proxy節(jié)點確定內置有產品部署所需的服務包、腳本和至少一個組件的鏡像;利用鏡像中的服務包和至少一個組件以安裝操作系統(tǒng);基于安裝的操作系統(tǒng),通過運行腳本,安裝Proxy節(jié)點對應的組件,以及控制連接的監(jiān)控節(jié)點安裝該監(jiān)控節(jié)點對應的組件,控制每一個連接的worker節(jié)點安裝該worker節(jié)點對應的組件。Proxy節(jié)點利用定制化鏡像以安裝操作系統(tǒng),并通過運行腳本以分別在Proxy節(jié)點、監(jiān)控節(jié)點、worker節(jié)點安裝各節(jié)點對應的組件,從而自動化部署產品。因此,本發(fā)明實施例能夠進行產品的自動化部署。
2、本發(fā)明實施例中,通過將產品部署中所需的組件、服務包等內置到定制化系統(tǒng)鏡像中,根據該鏡像和具有安裝流程的腳本,可以實現產品的自動化部署。這一實現方式避免了手動部署繁雜的工作量,有效解決了IOP Manager產品手動部署過程中組件配置繁雜、部署周期冗長等問題,大大提升了部署運維效率。
3、本發(fā)明實施例中,產品自動化部署的實現,不僅為部署人員避免或減少了一定的繁雜工作量,同時降低了因人為操作所帶來的出錯幾率,故提高了產品部署的準確率。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃·····”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。