2013-08-21 20 views
3

我使用saltstack來部署我的服務器。 我想在一臺服務器上安裝所有「tomcat7」pkgs。所以我寫了SLS文件是這樣的:SaltStack:如何在「sls」中使用正則表達式來編寫pkgs?

^tomcat7.*: 
    pkg: 
    - installed 
    - require: 
    - pkg: openjdk-7-jdk 

但最終,它收到一個錯誤:

---------- 
State: - pkg 
Name:  ^tomcat7.* 
Function: installed 
    Result: False 
    Comment: Package ^tomcat7.* failed to install 
    Changes: 

但事實上,服務器安裝所有^ tomcat7 *包成功地。

[email protected]:~# dpkg -l tomcat7* 
Desired=Unknown/Install/Remove/Purge/Hold 
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend 
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) 
||/ Name             Version       Architecture     Description 
+++-=====================================================-===============================-===============================-=============================================================================================================== 
ii tomcat7            7.0.35-1~exp2ubuntu1.1   all        Servlet and JSP engine 
ii tomcat7-admin           7.0.35-1~exp2ubuntu1.1   all        Servlet and JSP engine -- admin web applications 
ii tomcat7-common          7.0.35-1~exp2ubuntu1.1   all        Servlet and JSP engine -- common files 
ii tomcat7-docs           7.0.35-1~exp2ubuntu1.1   all        Servlet and JSP engine -- documentation 
ii tomcat7-examples          7.0.35-1~exp2ubuntu1.1   all        Servlet and JSP engine -- example web applications 
ii tomcat7-user           7.0.35-1~exp2ubuntu1.1   all        Servlet and JSP engine -- tools to create user instances 

如何解決這個問題?我需要將所有^ tomcat7。* pkgs一個一個寫出來嗎?

回答

4

所以這裏的問題是,pkg.installed狀態檢查已安裝軟件包列表的^tomcat7.*完全匹配,而不使用正則表達式。它發現該軟件包不存在,因此它會嘗試安裝它。這種嘗試是有效的,因爲包裝系統明顯支持支持正則表達式。 pkg.installed然後再次檢查已安裝的軟件包列表^tomcat7.*(沒有正則表達式),發現它仍然丟失,因此它報告錯誤。

這裏的解決方案可能會添加另一個參數pkg.installed開啓正則表達式匹配。但是,這使得狀態的確定性降低,因爲我們只是在包列表中搜索正則表達式上的匹配項,並且不會驗證是否安裝了包含該正則表達式的軟件包全部。例如,如果以前只安裝了tomcat7軟件包,這可能會適得其反。 pkg.installed會看到有匹配,並且不安裝其餘的軟件包。

如果您想使用pkgs參數來列出您需要的所有確切軟件包,那麼您會好得多。這種方式更具確定性,並且您知道它們都將被安裝,即使之前已經安裝了一個或多個。

+0

非常感謝!我懂了。 –

相關問題