烧杯木偶在 spec_helper_acceptance.rb

问题描述

我创建了一个节点集来测试重用静态主节点的 Puppet 模块。为了完成这个难题,我需要确保(以便多个测试可以同时运行)依赖模块安装到一个唯一的 /environments 文件夹中。

我已将被测模块设置为复制,因此使用 copy_module_to(host,source: PROJECT_ROOT,target_module_path: "/etc/puppetlabs/code/environments/#{agents[0].hostname}/modules/",protocol: 'rsync')

但是无法以相同的方式获得 install_module_dependencies_on(host) 函数来安装 deps。

查看 module_utils.rb 源代码 (https://github.com/voxpupuli/beaker-puppet/blob/master/lib/beaker-puppet/install_utils/module_utils.rb),有一个参数 'default_module_install_opts' 如果在节点集中设置,则将其传递给函数default_module_install_opts: {'target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules'},但是从节点集中它不会解析参数“#{agents[0].hostname}”,而是创建该名称文字目录。

我尝试了许多排列来设置 spec_helper_acceptance 文件中的参数,但是它们在调用时没有传递给函数。下面是我在调用 'install_module_dependecies_on' 之前尝试设置参数的一些不成功的事情。感谢您提出任何建议(无需质疑我为什么要在静态母版上实现这一目标)。

host.options[:default_module_install_opts] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

options[:default_module_install_opts] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

set :host,options[:default_module_install_opts] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

set options[:default_module_install_opts] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

ENV['default_module_install_opts'] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

host[:default_module_install_opts] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

set default_module_install_opts: '{ "target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules" }'

default_module_install_opts = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

options['default_module_install_opts'] = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

@default_module_install_opts = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

$default_module_install_opts = "{ target-dir /etc/puppetlabs/code/environments/#{agents[0].hostname}/modules }"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)