3

我想使用 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

4

1 回答 1

2

一般建议由 Chef 管理整个文件。在这种情况下,我将使用“nfs”说明书(或任何您命名的)中导出共享的属性,然后使用“模板”资源来管理文件的内容。食谱的属性文件中的类似内容,或通过角色应用:

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 社区网站 (nfs cookbook)上发表。它非常完整,包括测试。

于 2012-11-22T08:12:01.903 回答