2012-11-21 27 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)上的优秀烹饪书作家发表。它非常完整,包括测试。