remote_file 'Download remote file' do
path /opt/
source http:///xxx
mode '0644'
action :create
end
...一个文件。如果我想在同一位置使用不同的URL下载多个文件怎么办?或如何修改此资源以进行具有不同URL的多次下载?
这是我在配方中添加属性的方式:在属性中
node['file']['name'].each do |pkg|
remote_file "path/plugins/#{pkg}" do
source "node['file']['url']/#{pkg}"
action :create
end
end
#1 楼
那么这样的事情:%w{
mysql-community-common-5.7.16-1.el7.x86_64.rpm
mysql-community-libs-5.7.16-1.el7.x86_64.rpm
mysql-community-client-5.7.16-1.el7.x86_64.rpm
mysql-community-server-5.7.16-1.el7.x86_64.rpm
}.each do |pkg|
remote_file "/tmp/#{pkg}" do
source "https://s3.amazonaws.com/tmp/mysql/#{pkg}"
end
rpm_package pkg do
source "/tmp/#{pkg}"
action :install
end
end
另一种方式:
urllist = {
{ 'url': 'http://some.url1/', 'path': '/some/path1/', 'filename': 'some.file' },
{ 'url': 'https://some.url2/', 'path': '/some/path2/', 'filename': 'another.file'}
}
urllist.each do |urlinfo|
remote_file "#{urlinfo['path']}/#{urlinfo['filename']}" do
source "#{urlinfo['url']}/#{urlinfo['filename']}"
owner 'someowner'
group 'somegroup'
mode 0755
end
end
评论
看起来很棒@柏林。有没有我可以设置安装路径的方法。我想在Jenkins的指定路径中安装一些插件,例如:'/ opt / XXX / plugins /'。我想将这些插件下载到plugins文件夹中,但有时它说插件存在但其文件夹中
– Pandey
17年4月27日在20:03
@柏林对我有用。我有什么办法可以为您提到的rpm写属性
– Pandey
17年4月27日在20:12
mysql-community-common-5.7.16-1.el7.x86_64.rpm mysql-community-libs-5.7.16-1.el7.x86_64.rpm mysql-community-client-5.7.16-1.el7.x86_64。 rpm mysql-community-server-5.7.16-1.el7.x86_64.rpm如何将其写为属性
– Pandey
17年4月27日在20:26
参见下面的@Tensibai答案attribute / default.rb,这是您要寻找的吗?
–柏林
17-4-27在20:29
@berlin以获取信息,您可以粘贴缩进的代码,选择它,然后按代码按钮({})或ctrl + k可以缩进具有4个空格的块并保持原始格式
–滕西拜
17年4月27日在20:43
#2 楼
对于这种情况,我要做的是将节点属性哈希用于键值映射,如下所示:在
attributes/default.rb
中default['namespace']['files']['file1']='http://server1/path/source_fileX'
default['namespace']['files']['file2']='http://server2/path/source_fileY'
:
default['namespace']['files']={'file1' => 'http://server1/path/source_fileX',
'file2'=>'http://server2/path/source_fileY'}
然后在配方中:节点属性是哈希结构的优点。
如果您当然可以设置完整路径而不仅仅是文件名,并且避免在配方remote_file中使用字符串插值。 br />
评论
请参阅remote_directory资源和文档:docs.chef.io/resource_remote_directory.html@Tensibai我看不到具有多个URL的任何内容
抱歉,我确实错过了这一点,循环听起来很麻烦,您必须指定早期的h文件BTW。我会尝试回答,但可能会出现错字