2014-11-02 68 views
2

我是CFEngine的新手,我試圖根據主機名執行一些操作。CFEngine與捆綁代理中的主機名匹配

例如:所有主機名具有穩定應包含SLIST包1個 有測試所有的主機名應包含SLIST包2

bundle agent package_lists { 
packages: 
stable&dist_class:: 
    "$(user_packages.package_stable)" 
      package_policy => "add", 
      package_method => yuck, 
      classes => if_repaired("package_changed"); 
} 

我想改變這包括在它們與測試主機良好

應該增加測試是否足夠?我無法理解dist_class ::和stable是什麼。

穩定版& dist_class ::

+ 測試 &穩定& dist_class ::

回答

1

我相信你應該使用OR運算符 '||'而不是'&'/'& &'操作符(假設您正在討論代表所有三個類需要相同軟件包安裝的服務器組的類)。使用&符號(&)或點(。)將只匹配屬於所有三個類而不是個人的服務器。 https://docs.cfengine.com/docs/3.5/manuals-language-concepts-classes.html

如果您只想匹配一次匹配所有三個類定義的服務器,那麼&符號就是(一個)要走的路。

就我個人而言,我喜歡將事物儘可能原子化,所以我實際上會分別定義所有三個類的承諾,或者爲通用包創建一個新類,以確保上述服務器屬於該類。

+0

OR運算符只是'|';你不需要其中的兩個。例如。 '測試|穩定| dist_class ::' – Wildcard 2016-02-09 07:56:41

相關問題