我想使用Chef在Linux中使用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-kernel-server
答案 0 :(得分:2)
通常建议由Chef管理整个文件。在这种情况下,我将使用“nfs”cookbook中的导出共享的属性(或任何您命名的),然后使用“模板”资源来管理文件的内容。在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)的优秀食谱作者发表。它非常完整,包括测试。