烧杯木偶在 spec_helper_acceptance.rb

时间:2021-02-27 01:29:05

标签: ruby puppet beaker

我创建了一个节点集来测试重用静态主节点的 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 }"

0 个答案:

没有答案