未找到Vagrant Puppet类错误

未找到Vagrant Puppet类错误,vagrant,puppet,Vagrant,Puppet,我得到的信息是: Puppet::Parser::AST::Resource失败,错误为ArgumentError:在节点vagrant-ubuntu-precise-64.wp.com上的/tmp/vagrant-Puppet-1/manifests/site.pp:15处找不到声明的类git 也许最好的办法是将其付诸实施。我已经创建了一个与我使用的清单完全相同的GitHub repo。在这里: 清单和git模块就在那里。如果您有Vagrant,这可能是Wagrant up,您将自己看到错误

我得到的信息是:

Puppet::Parser::AST::Resource失败,错误为ArgumentError:在节点vagrant-ubuntu-precise-64.wp.com上的/tmp/vagrant-Puppet-1/manifests/site.pp:15处找不到声明的类git

也许最好的办法是将其付诸实施。我已经创建了一个与我使用的清单完全相同的GitHub repo。在这里:

清单和git模块就在那里。如果您有Vagrant,这可能是Wagrant up,您将自己看到错误。在这里收到答案和/或作为提交(此处仍将为答案提供积分)都很酷

非常感谢你

这是:

class{ git:
svn => 'installed',
gui => 'installed',
}
正在告诉puppet基于名为git的类创建资源,该类有两个参数:svn和gui。这样的类声明在您发布的内容中的任何地方都不存在。如果是,它看起来会像:

class git ($svn, $gui) {

  package {'svn':
    ensure => $svn,
  }

  # Whatever 'gui' is, making package b/c use of "installed"
  package {'gui':
    ensure => $gui,
  }
}
另一种方法是声明一个类并使用“include”指令包含它

推荐阅读以下内容:

class{ git:
svn => 'installed',
gui => 'installed',
}
正在告诉puppet基于名为git的类创建资源,该类有两个参数:svn和gui。这样的类声明在您发布的内容中的任何地方都不存在。如果是,它看起来会像:

class git ($svn, $gui) {

  package {'svn':
    ensure => $svn,
  }

  # Whatever 'gui' is, making package b/c use of "installed"
  package {'gui':
    ensure => $gui,
  }
}
另一种方法是声明一个类并使用“include”指令包含它



推荐阅读您需要使用puppet模块路径阅读的

。另一方面,您通常也会将清单和模块文件夹保存在同一文件夹中,而不是清单中的模块。

您需要使用puppet模块路径。另一方面,您通常也会将清单和模块文件夹保存在同一个文件夹中,而不是清单中的模块。

只是好奇您是否看过git repo?我很感激你的回复,但它缺少信息。是的,git类作为文件夹存在于模块中,所以我认为您的回答没有考虑到这一点。但是我非常感谢你的尝试。我很好奇你是否曾尝试在我提供的github链接上漫游我的回购协议,在那里你可以看到实际的pp和实际的目录结构(git模块所在的位置)。啊,只是这里发生了什么。检查puppet.conf。它应该有一个清单和模块设置,告诉它在哪里可以找到它们。通常是/etc/puppet/manifests和/etc/puppet/modules。site.pp位于manifests目录中,git模块位于modules目录中。错误消息明确表示它找不到git模块。您是否能够
vagrant up
我的实际示例?是的,错误消息说它找不到git模块——尽管它似乎在正确的位置查找它。我已经确认模块似乎在寻找的地方。我很感激你花时间写了一个回复,但这是一个一般的理论猜测,可能并没有真正解决这个具体问题。“似乎在寻找它的地方”显然没有发生b/c它找不到它。模块路径也可以在命令行上设置,我怀疑这就是故障所在。在github上的vagrant文件上,我看到设置了一个清单路径,但没有模块路径。没有模块路径——没有办法找到它。只是好奇你是否看过git回购协议?我很感激你的回复,但它缺少信息。是的,git类作为文件夹存在于模块中,所以我认为您的回答没有考虑到这一点。但是我非常感谢你的尝试。我很好奇你是否曾尝试在我提供的github链接上漫游我的回购协议,在那里你可以看到实际的pp和实际的目录结构(git模块所在的位置)。啊,只是这里发生了什么。检查puppet.conf。它应该有一个清单和模块设置,告诉它在哪里可以找到它们。通常是/etc/puppet/manifests和/etc/puppet/modules。site.pp位于manifests目录中,git模块位于modules目录中。错误消息明确表示它找不到git模块。您是否能够
vagrant up
我的实际示例?是的,错误消息说它找不到git模块——尽管它似乎在正确的位置查找它。我已经确认模块似乎在寻找的地方。我很感激你花时间写了一个回复,但这是一个一般的理论猜测,可能并没有真正解决这个具体问题。“似乎在寻找它的地方”显然没有发生b/c它找不到它。模块路径也可以在命令行上设置,我怀疑这就是故障所在。在github上的vagrant文件上,我看到设置了一个清单路径,但没有模块路径。没有模块路径--找不到它。谢谢,克里斯-但具体来说我需要采取什么步骤?@user3078326您需要将
puppet.module\u path
设置到模块所在的位置,在您的情况下
“manifests\modules”
。非常感谢!我很欣赏这个正确的答案。只是一个想法,但我鼓励将您评论中的信息添加到原始答案中。它正中要害。再次感谢。尽管我试图设置
Puppet.module\u path
,但出于某种原因,Puppet没有选择模块路径。最后,at的另一种方法帮助我解决了这个问题谢谢,克里斯-但具体来说,我需要采取什么步骤?@user3078326您需要将
puppet.module\u path
设置到模块所在的位置,在您的情况下
“manifests\modules”
。非常感谢!我很欣赏这个正确的答案。只是一个想法,但我鼓励将您评论中的信息添加到原始答案中。它正中要害。再次感谢。尽管我试图设置
Puppet.module\u path
,但出于某种原因,Puppet没有选择模块路径。最后,另一种方法帮助我解决了这个问题