我想使用chef recipe将目录从远程服务器复制到我的客户端。 'remote_file'资源可用于复制文件。 remote_directory可以在cookbook文件中本地复制目录。我找不到复制远程目录recurcive的方法。我想做以下事情:
remote_file/direcotry 'Copying the folder' do
path 'c:/repo/OpenOffice4.1.0'
source 'file:////10.132.17.53/e$/CHEFREPO/OpenOffice 4.1.0 (en-US) Installation Files'
end
答案 0 :(得分:1)
remote_file资源支持HTTP和FTP协议。虽然通过远程目录中包含的文件进行迭代是可行的,但这并非易事。
另一个考虑因素是安全性。 remote_file资源允许为远程文件指定校验和,以便厨师能够确定下载了正确的文件。
所以..希望这可以解释为什么远程目录资源默认在chef中不可用。
但是......希望不会丢失。以下是一些建议(很多其他方法来复制文件系统我敢肯定);将远程目录打包为压缩的tar包
tar cf mydir-0.1.tar /data/mydir
gzip mydir.tar
ark cookbook是我最喜欢的管理档案的方式
ark 'mydir' do
url 'http://host/filesystems/mydir-0.1.tar.gz'
version '0.1'
checksum 'XXXXXXX'
path '/data'
end
我也喜欢扩展的tarball版本化的事实。把这想象成一个穷人的快照: - )
我们有rsync cookbook可用,允许在远程计算机上设置rsync服务器。
也可以通过ssh运行rsync,但这需要提前设置SSH密钥。
这是所有同步解决方案如何设置身份验证的问题。
答案 1 :(得分:0)
在.rb文件中添加以下代码:
remote_file 'path where remote file will be downloaded' do
source "remote_file url"
action :create
end
我们也可以使用remote_file的 path 属性指定路径。
path "path where remote file will be downloaded"