2012-11-21 28 views
3

我想在Linux中使用Chef共享使用NFS的文件夾。到目前爲止,我已經得到了這個:如何以冪等方式使用Chef添加NFS共享?

#share the path using NFS 
File.open("/etc/exports", 'a') do |file| 
    file.puts FS_BASE_PATH+" *(rw)" 
    end 

哪個工作,一次。隨後的供應重複此行。

我是否繼續此路徑,檢查文件內容以查看它是否已包含Ruby中的行?或者,有沒有一個命令來配置NFS共享,而不必直接編輯出口文件,這代表了我的意思嗎?在Windows中,我會使用NET SHARE。

Linux和NFS的特色是:Ubuntu的12.04,NFS的內核服務器

回答

2

一般建議來管理由廚師整個文件。在這種情況下,我會使用「nfs」cookbook中的導出共享屬性(或任何其他名稱),然後使用「模板」資源來管理文件的內容。像這樣的事情在食譜的屬性文件,或通過角色應用:

default['nfs']['exports'] = ["/srv/export 10.0.0.0/8(ro,sync,no_root_squash)"] 

在配方模板:

template "/etc/exports" do 
    source "exports.erb" 
    mode 00644 
end 

然後模板本身:

<%- node['nfs']['exports'].each do |line| %> 
<%= line %> 
<%- end %> 

當然,已經有一本非常漂亮的NFS烹飪書,由Chef Community Site (nfs cookbook)上的優秀烹飪書作家發表。它非常完整,包括測試。