Puppet配置數(shù)據(jù)的處理方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種Puppet配置數(shù)據(jù)的處理方法及裝置。Puppet配置數(shù)據(jù)的處理方法,包括:解析已有的多個(gè)Puppet配置文件,將其分為固定的指令序列部分和可變的參數(shù)部分;獲取其中所述固定的指令序列部分,將其封裝成可調(diào)用的模塊;以及在該模塊上設(shè)置對(duì)外接口,以供所述模塊被調(diào)用時(shí)接收外界參數(shù)輸入。采用本發(fā)明能夠增加了業(yè)務(wù)的穩(wěn)定性,并能夠節(jié)省配置文件生成所需的資源。
【專利說明】Puppet配置數(shù)據(jù)的處理方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用領(lǐng)域,特別是涉及一種Puppet配置數(shù)據(jù)的處理方法及裝 置。
【背景技術(shù)】
[0002] puppet是一種Linux、Unix、windows平臺(tái)的集中配置管理系統(tǒng),使用自有的 puppet描述語言,可管理配置文件、用戶、cron任務(wù)、軟件包、系統(tǒng)服務(wù)等。puppet把這些 系統(tǒng)實(shí)體稱之為資源,puppet的設(shè)計(jì)目標(biāo)是簡(jiǎn)化對(duì)這些資源的管理以及妥善處理資源間的 依賴關(guān)系。
[0003] 現(xiàn)有技術(shù)中,puppet的配置是寫/etc/puppet/manifests/site. PP配置文件中 的,但是,配置文件在使用過程必然是需要經(jīng)常變動(dòng)的,任意一個(gè)參數(shù)的變化都會(huì)引起配置 文件的變化,進(jìn)而需要重啟主服務(wù)器(Master)。對(duì)于業(yè)務(wù)而言,重啟Master所需的時(shí)間較 長(zhǎng),若經(jīng)常性重啟Master,對(duì)業(yè)務(wù)本身的可持續(xù)性造成非常大的困擾,造成業(yè)務(wù)不穩(wěn)定。
【發(fā)明內(nèi)容】
[0004] 鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的Puppet配置數(shù)據(jù)的處理方法和相應(yīng)的裝置。
[0005] 基于本發(fā)明的一個(gè)方面,提供了一種Puppet配置數(shù)據(jù)的處理方法,包括:
[0006] 解析已有的多個(gè)Puppet配置文件,將其分為固定的指令序列部分和可變的參數(shù) 部分;
[0007] 獲取其中所述固定的指令序列部分,將其封裝成可調(diào)用的模塊;以及
[0008] 在該模塊上設(shè)置對(duì)外接口,以供所述模塊被調(diào)用時(shí)接收外界參數(shù)輸入。
[0009] 可選地,Puppet配置數(shù)據(jù)的處理方法還包括:
[0010] 當(dāng)所述模塊通過所述對(duì)外接口接收到所述外界參數(shù)時(shí),所述模塊與所述外界參數(shù) 合成生成配置文件。
[0011] 可選地,所述模塊接收外界參數(shù)輸入之后,還包括:將所述外界參數(shù)格式化為多系 統(tǒng)的通用格式,以供后續(xù)其他系統(tǒng)調(diào)用。
[0012] 可選地,所述通用格式為JSON格式。
[0013] 可選地,所述固定的指令序列部分包括下列至少之一:先安裝軟件包,后同步配置 文件;需不需要重啟服務(wù);
[0014] 所述可變的參數(shù)部分包括下列邏輯至少之一:軟件包的名字、版本、配置文件的路 徑。
[0015] 基于本發(fā)明的另一個(gè)方面,提供了一種Puppet配置數(shù)據(jù)的處理裝置,包括:
[0016] 解析組件,適于解析已有的多個(gè)Puppet配置文件,將其分為固定的指令序列部分 和可變的參數(shù)部分;
[0017] 封裝組件,適于獲取其中所述固定的指令序列部分,將其封裝成可調(diào)用的模塊;
[0018] 接口設(shè)置組件,適于在該模塊上設(shè)置對(duì)外接口,以供所述模塊被調(diào)用時(shí)接收外界 參數(shù)輸入。
[0019] 可選地,當(dāng)所述模塊通過所述對(duì)外接口接收到所述外界參數(shù)時(shí),所述模塊與所述 外界參數(shù)合成生成配置文件。
[0020] 可選地,所述封裝組件還適于:所述模塊接收外界參數(shù)輸入之后,將所述外界參數(shù) 格式化為多系統(tǒng)的通用格式,以供后續(xù)其他系統(tǒng)調(diào)用。
[0021] 可選地,所述通用格式為JSON格式。
[0022] 可選地,所述固定的指令序列部分包括下列邏輯至少之一:先安裝軟件包,后同步 配置文件;需不需要重啟服務(wù);
[0023] 所述可變的參數(shù)部分包括下列至少之一:軟件包的名字、版本、配置文件的路徑。
[0024] 在本發(fā)明實(shí)施例中,將Puppet配置文件劃分為兩部分,一部分是固定的指令序列 部分(即靜態(tài)參數(shù)),另一部分是可變的參數(shù)部分(即動(dòng)態(tài)參數(shù)),靜態(tài)參數(shù)和動(dòng)態(tài)參數(shù)分 開,在使用時(shí)將兩者結(jié)合,容易形成自動(dòng)化控制,使用起來省時(shí)省力。將兩部分劃分開之后, 將固定的指定序列部分封裝成可調(diào)用模塊,并在其上設(shè)置對(duì)外接口,以供該模塊被調(diào)用時(shí) 接收外界參數(shù)的輸入。隨后,將外界參數(shù)匹配到對(duì)應(yīng)的指令中,生成配置文件。在本發(fā)明實(shí) 施例中,固定的指令序列部分封裝成模塊后是固定存在的,對(duì)于主服務(wù)器而言,即配置文件 主體是固定存在的,并未出現(xiàn)變化。其變化的僅僅是通過對(duì)外接口輸入的外界參數(shù),配置 文件主體不變,那么,主服務(wù)器不需要重啟,避免因多次重啟耗時(shí)所造成的業(yè)務(wù)不穩(wěn)定的情 況,能夠?qū)I(yè)務(wù)提供穩(wěn)定的支持。另外,因指令序列部分被封裝為可調(diào)用模塊,對(duì)于配置文 件自身而言,這部分指令序列部分可以直接調(diào)用,不需要重新利用代碼寫入多個(gè)指令序列, 配置文件的準(zhǔn)確性、可靠性以及配置文件的生成效率都大大提高,尤其是對(duì)于復(fù)雜的指令 序列,效果大大增加。由于模塊可調(diào)用性的便利,進(jìn)一步增加了業(yè)務(wù)的穩(wěn)定性,并能夠節(jié)省 配置文件生成所需的資源。
[0025] 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠 更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
[0026] 根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明 了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
【專利附圖】
【附圖說明】
[0027] 通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通 技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明 的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0028] 圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的Puppet配置數(shù)據(jù)的處理方法的處理流程 圖;
[0029] 圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的Puppet配置數(shù)據(jù)的處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0030] 下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開 的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例 所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0031] 為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種Puppet配置數(shù)據(jù)的處理方法。首 先介紹puppet的配置文件結(jié)構(gòu)。下述部分是puppet的配置文件的一個(gè)示例:
【權(quán)利要求】
1. 一種化ppet配置數(shù)據(jù)的處理方法,包括: 解析已有的多個(gè)化ppet配置文件,將其分為固定的指令序列部分和可變的參數(shù)部分; 獲取其中所述固定的指令序列部分,將其封裝成可調(diào)用的模塊;W及 在該模塊上設(shè)置對(duì)外接口,W供所述模塊被調(diào)用時(shí)接收外界參數(shù)輸入。
2. 根據(jù)權(quán)利要求1所述的方法,其中,還包括: 當(dāng)所述模塊通過所述對(duì)外接口接收到所述外界參數(shù)時(shí),所述模塊與所述外界參數(shù)合成 生成配置文件。
3. 根據(jù)權(quán)利要求1或2所述的方法,其中,所述模塊接收外界參數(shù)輸入之后,還包括: 將所述外界參數(shù)格式化為多系統(tǒng)的通用格式,W供后續(xù)其他系統(tǒng)調(diào)用。
4. 根據(jù)權(quán)利要求3所述的方法,其中,所述通用格式為JSON格式。
5. 根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其中, 所述固定的指令序列部分包括下列邏輯至少之一:先安裝軟件包,后同步配置文件; 需不需要重啟服務(wù); 所述可變的參數(shù)部分包括下列至少之一;軟件包的名字、版本、配置文件的路徑。
6. -種化ppet配置數(shù)據(jù)的處理裝置,包括: 解析組件,適于解析已有的多個(gè)化ppet配置文件,將其分為固定的指令序列部分和可 變的參數(shù)部分; 封裝組件,適于獲取其中所述固定的指令序列部分,將其封裝成可調(diào)用的模塊; 接口設(shè)置組件,適于在該模塊上設(shè)置對(duì)外接口,W供所述模塊被調(diào)用時(shí)接收外界參數(shù) 輸入。
7. 根據(jù)權(quán)利要求6所述的裝置,其中,當(dāng)所述模塊通過所述對(duì)外接口接收到所述外界 參數(shù)時(shí),所述模塊與所述外界參數(shù)合成生成配置文件。
8. 根據(jù)權(quán)利要求6或7所述的裝置,其中,所述封裝組件還適于;所述模塊接收外界參 數(shù)輸入之后,將所述外界參數(shù)格式化為多系統(tǒng)的通用格式,W供后續(xù)其他系統(tǒng)調(diào)用。
9. 根據(jù)權(quán)利要求8所述的裝置,其中,所述通用格式為JSON格式。
10. 根據(jù)權(quán)利要求6至9任一項(xiàng)所述的裝置,其中, 所述固定的指令序列部分包括下列邏輯至少之一:先安裝軟件包,后同步配置文件; 需不需要重啟服務(wù); 所述可變的參數(shù)部分包括下列至少之一:軟件包的名字、版本、配置文件的路徑。
【文檔編號(hào)】G06F9/44GK104461557SQ201410804442
【公開日】2015年3月25日 申請(qǐng)日期:2014年12月19日 優(yōu)先權(quán)日:2014年12月19日
【發(fā)明者】王浩宇 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司