3

Linuxで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-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 %>

もちろん、Chef コミュニティ サイト (nfs cookbook)で優れたクックブックの著者によって公開されている、非常に優れた NFS クックブックが既にあります。テストも含めて非常に完成度が高いです。

于 2012-11-22T08:12:01.903 に答える