Puppet 提供程序未安装先决条件

Puppet 提供程序未安装先决条件

我已经克隆了一个模块用于虚拟机,但是当我尝试将虚拟机应用到节点时,我得到了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"
  }
}

答案1

在节点定义中,您没有使用类 virt,而是使用自定义类型 virt。

您会在 modulename/lib/puppet/type 中找到它。

它需要一个提供程序 (modulename/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

相关内容