0

Windows共有を使用してファイルをコピーしようとしています。Linuxを使用しているときにエラーが発生するため、Windowsで正常に動作します。

remote_file 'download' do 
source 'file:////server/repo/client.zip' 
path "/etc/chef/client.zip" 
end

エラーログ

Errno::ENOENT ------------- No such file or directory @ rb_sysopen - /server/repo/client.zip

Resource Declaration: --------------------- 
# In 52: remote_file 'download' do 
53: source 'file:////server/repo/client.zip' 
54: path "/etc/chef/client.zip" 
56: end 
57: #end

4

2 に答える 2

0

試すことができますか:

remote_file 'download' do 
  source '\\server\repo\client.zip' 
  path "/etc/chef/client.zip" 
end

remote_file リソースは、Chef::Provider::RemoteFile::NetworkFileクラスを介して Windows ネットワーク パスをサポートします (詳細についてソースを掘り下げたい場合)。

remote_file の下のディスパッチャは、先頭の二重のバックワック '\\' をキーオフするため、これらの文字はスラッシュではなくバックワックでなければなりません。また、二重引用符ではなく一重引用符を使用していることにも注意してください。二重引用符が使用されている場合 (補間または単にスタイルのために)、バックワックをエスケープする必要があり、それは になりsource "\\\\server\\repo\\client.zip"ます。ruby 自体は、バックワックの残りの部分がスラッシュに変更されても許容できると確信しています (したがってsource '\\server/repo/client.zip'、合法でしょうか?)。

この機能は、 https: //github.com/chef/chef/pull/3336 の 12.4.0 で最初にリリースされました。

于 2015-11-26T22:03:51.463 に答える