Итак, у меня есть полностью функциональный класс 'ldap'.
Теперь я хочу сделать кое-что для определенных пользователей в моем каталоге ldap.
Я делаю это в новых 'users'модуль, сначала создав новый определенный_тип:
define users::admin (
String $sshkey
) {
file {"/home/${title}":
ensure => directory,
owner => $title,
group => 'root',
require => Class['ldap']
}
...
}
Затем я использую этот определенный тип в файле init.pp моего модуля 'пользователя':
class users {
users::admin {'ldt':
sshkey => 'mysshkey',
}
}
Но когда я пытаюсь использовать 'pdk test unit 'на этом я получаю следующую ошибку:
failed: rspec: ./spec/classes/users_spec.rb:8: error during compilation:
Could not find resource 'Class[Ldap]' in parameter 'require'
(file: ~/Projects/puppet/modules/users/spec/fixtures/modules/users
/manifests/admin.pp, line: 15) on node <mycomputer>
Ради полноты, вот мой admin_spec.rb (едва измененный по умолчанию из pdk):
require 'spec_helper'
describe 'users::admin' do
let(:title) { 'namevar' }
let(:params) do
{
'sshkey' => ''
}
end
on_supported_os.each do |os, os_facts|
context "on #{os}" do
let(:facts) { os_facts }
it { is_expected.to compile }
end
end
end
Iпопытался настроить мой .fixtures.yml следующим образом, но это не помогло:
fixtures:
symlinks:
ldap: "#{source_dir}"
Есть идеи о том, что я делаю неправильно?
РЕДАКТИРОВАТЬ: изменил мой .fictures.ymlto:
fixtures:
symlinks:
ldap: "#{source_dir}/../ldap"
Черт, я даже вручную добавил символическую ссылку на мой модуль ldap в папках spec / fixtures / modules.Все та же ошибка.