覆盖chef资源中的属性



我为redisio社区烹饪书创建了一个包装器烹饪书,我想从resources/install.rb覆盖download_dir属性:

attribute :download_dir, :kind_of => String, :default => Chef::Config[:file_cache_path]

因为file_cache_path,它采取的路径,厨师客户端是运行(/var/chef/cache)。问题是,在attributes/default.rb (redisio cookbook)中,因为只有install_dir在我指定的文件夹中创建一个bin,如下所示:

node.override['redisio']['install_dir'] = '/redis-setup'  -> rediswrapper cookbook 

不包括安装配方,您可以选择重要的部分,自己调用redisio_install提供程序并提供download_dir选项,例如使用

include_recipe 'redisio::_install_prereqs'
include_recipe 'build-essential::default'
redis = node['redisio']
location = "#{redis['mirror']}/#{redis['base_name']}#{redis['version']}.#{redis['artifact_type']}"
redisio_install "redis-installation" do
  version redis['version'] if redis['version']
  download_url location
  safe_install redis['safe_install']
  install_dir redis['install_dir'] if redis['install_dir']
  download_dir "/tmp"
end

最新更新