Я клонировал модуль для виртуальных машин, но когда я пытаюсь применить виртуальную машину к узлу, я получаю Error: Could not find a suitable provider for virt
, что понятно, учитывая, что содержимое init.pp указывает, что ядро с поддержкой виртуализации уже должно быть запущено (ядро Xen или OpenVZ).
Однако с включенным init.pp я ожидал бы сообщения об ошибке где-нибудь при запуске puppet agent --test --debug
на узле:
class virt {
fail "testfail"
case $::virtual {
/^xen/: { include virt::xen }
#/^kvm/: { include virt::kvm }
/^openvzhn/: { include virt::openvz }
}
}
Но это не удается с ошибкой выше, Error: Could not find a suitable provider for virt
. Определение моего узла:
node 'hostname' {
# common is a custom module including SSH keys, works fine
include common
virt { "1001":
memory => 1024,
cpus => 4,
tmpl_cache => "debian-6.0-x86_64",
ensure => running,
virt_type => "openvz"
}
}
В определении узла вы используете не класс virt, а настраиваемый тип virt.
Вы найдете его в имени модуля / lib / puppet / type.
Ему нужен провайдер (имя модуля / lib / puppet / provider), но он не может найти тот, который подходит для вашей системы.
Чтобы включить класс virt, вы можете использовать одно из следующих:
включить virt или class ('virt':}
Причина, по которой он не работает; вам, вероятно, не хватает одного из этих двоичных файлов: (взято у поставщика)
commands :virtinstall => "/usr/bin/virt-install"
commands :virsh => "/usr/bin/virsh"
commands :grep => "/bin/grep"
commands :ip => "/sbin/ip"
Который; или у вас этого нет:
confine :feature => :libvirt