2014-11-06 68 views
0

我有一些顯式管理resolv.conf文件的主機。我還有一些依賴於NetworkManager的人,他執行許多操作,包括編寫resolv.conf文件。 Pupppet有沒有一種統一的方式來管理這些信息,比如某些模塊可以在語義上描述DNS服務器和搜索順序,然後根據主機的配置情況預期正確的事情發生。如果沒有,那麼是否有一個模塊會連接到NetworkManager來執行我想要的操作?寫出一個明確的resolv.conf文件是相當簡單的,所以如果我走那條路線,我不需要任何幫助。如何使用Puppet管理resolv.conf

回答

0

您可以使用模板。下面是一個模板的例子:

domain <%= @param1 %> 
search <%= @param1 %> <%= @param2 %> 
nameserver <%= @dns1 %> 
nameserver <%= @dns2 %> 
<%= @dns1_ip6 %> 
<%= @dns2_ip6 %> 

您可以根據節點組的這些參數在條件語句中添加不同的值...如:

if ($domain){ 
    $param1 = $domain 
    $param2 = $someOtherDomain 
    $dns1 = 1.1.1.1 
    $dns2 = 1.1.1.2 
} 
+0

感謝。我已經有了類似的東西來顯式管理resolv.conf,但是它並沒有真正解決在NetworkManager生成resolv.conf的主機上要做什麼。 – 2014-11-07 04:49:27

1

您可以創建if語句前您的清單: *如果NetworkManager未安裝,請使用file_line(我知道的最好的傀儡模塊之一http://puppetlabs.com/blog/module-of-the-week-puppetlabsstdlib-puppet-labs-standard-library)編輯resolv.conf。 *否則確保NetworkManager正在運行。

如果您希望某些客戶在擁有NetowrkManager的服務器上擁有客戶resolv.conf,那麼可能會創建一個自定義參數?像default_resolv_conf,然後你表現: 如果$ {custom_resolv_conf file_line { '..': ..... }

希望這有助於