使用rspec-puppet for hiera_hash
时遇到问题以下是第一个例子
class users {
include users::example1
}
class users::example1 {
$abc = {
'example1' => {
'ensure' => 'present',
'shell' => '/usr/bin/ksh',
'home' => '/home/example1',
password' => 'xxxxxxxx',
'mode' => '0700',
}
}
create_resources('users::example1',$abc)
}
我为此写了rspec,请在下面找到
require 'spec_helper'
describe 'users', :type => 'class' do
it { should contain_class('users::example1')}
end
它没有任何问题
以下是第二个例子
class env {
include env::filetype
}
class env::filetype {
$tmp = hiera_hash('env::abc')
create_resources('logical::myfile, $tmp)
}
我在运行清单时遇到错误
Failures:
1) env should contain Class[env::filetype]
Failure/Error: it { should contain_class('env::filetype')}
Puppet::Error:
Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type logical::myfile at /etc//puppet/modules/env/spec/fixtures/modules/env/manifests/filetype.pp:7 on node
# ./spec/classes/env_spec.rb:5
Finished in 0.20231 secondsI 1 example, 1 failure
所以,我的疑问是rspec-puppet测试用例hiera将在同一个模块中工作,如果我们调用任何其他类来传递hiera中的数据,那么它将不支持rspec-puppet。
如果是这样,我们如何能够实现rspec-puppet
答案 0 :(得分:0)
错误非常具体:
ArgumentError: Invalid resource type logical::myfile at /etc//puppet/modules/env/spec/fixtures/modules/env/manifests/filetype.pp:7
这可能意味着logical
模块不可用于rspec-puppet
。确保模块是测试套件固定装置的一部分。