Назад | Перейти на главную страницу

Поставщик марионеток не устанавливает предварительные требования

Я клонировал модуль для виртуальных машин, но когда я пытаюсь применить виртуальную машину к узлу, я получаю 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