【问题标题】:How do I add a NFS share using Chef in an idempotent way?如何以幂等方式使用 Chef 添加 NFS 共享?
【发布时间】:2012-11-21 10:36:30
【问题描述】:

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

【问题讨论】:

    标签: ruby linux chef-infra nfs


    【解决方案1】:

    一般建议由 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 Community Site (nfs cookbook) 上发表。它非常完整,包括测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-19
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多